Проверьте 2 использования списков FluentValidation

Смотрите на http://selenium.openqa.org/ , это предлагает хороший автоматизированный способ встроить модульные тесты, сцепляющиеся в браузер. существует хороший плагин Firefox для записи тестов и может использовать почти любую платформу поблочного тестирования. У нас было представление/демонстрация в нашей группе локального пользователя, встречающейся в прошлом месяце, и это выглядело потрясающим.

5
задан Scozzard 18 July 2010 в 22:34
поделиться

2 ответа

В итоге я использовал следующий код FluentValidation для проверки соответствующих элементов в каждом списке, большое спасибо Гуванте, так как он был вдохновлен его псевдокодом :)

RuleFor(f => f.Names).Must((f, d) =>
            {
                for (int i = 0; i < d.Count; i++)
                {
                    if ((String.IsNullOrEmpty(d[i]) &&
                         !String.IsNullOrEmpty(f.URLs[i])))
                        return false;
                }

                return true;
            })
            .WithMessage("Names cannot be empty.");

            RuleFor(f => f.URLs).Must((f, u) =>
            {
                for (int i = 0; i < u.Count; i++)
                {
                    if ((String.IsNullOrEmpty(u[i]) &&
                         !String.IsNullOrEmpty(f.Names[i])))
                        return false;
                }

                return true;
            })
            .WithMessage("URLs cannot be empty.");
9
ответ дан 13 December 2019 в 22:10
поделиться

Вот псевдокод решения грубой силы. (Я не могу придумать какой-либо способ LINQ для выполнения индексированных сравнений) Приносим извинения за урезание синтаксиса Fluent.

Must(Names.Length == URLs.Length).WithMessage("Names must be equal in size to URLs");
for (int i = 0; i < Name.Length; i++)
{
    Must(string.IsNullOrEmpty(Names[i]) ^^ string.IsNullOrEmpty(URLs[i])).WithMessage("Either Name and URL must be non-empty, or both must be empty, index = " + i);
}

Надеюсь, вы понимаете суть, вы также можете изучить общие методы LINQ, вероятно, один из них я пропустил .

1
ответ дан 13 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: