Мягкие ассерты

Всем привет, я совсем новичек. Стоит задача делать несколько проверок в одном тесте (WebDriver+NUnit), но чтобы тот не падал и ошибки записались.

Ассерты останавливают тест, а Verify нету.

Читал что это можно сделать с помощью мягких ассертов.

Может подскажете как такое реализовать?

 

реализуется такая штука очень просто

можете создать методы обертки для необходимых ассертов и вызывать их

только в самих методах не делать вызов ошибки, а ловить ошибку и записывать ее где-то в список

а потом в конце теста проверять на наличие ошибок в списке

и если список пустой, значит все проверки прошли нормально

а если есть какие-то ошибки, вы делаете исключение и выводите стек ошибок

 

Да, в .NET вы можете использовать лямбда выражения, которые сделают синтаксис теста приятней. 
А все остальное – как Миша говорил в предыдущем сообщении. 
 
1. Создайте метод, который принимает лямбда-выражение (делегат). В данном случае, это VerySoft
2. Внутри VerySoft будет выполнен код Ассерта. Но, любой ексепшн будет отловлен
3. Если ексепшн произошел, то VerySoft поставит некоторую глобальную статическую переменную SomeGlobalHasErrors в true и добавит исключение в список. 
4. Список исключений можно потом прочитать в TearDown методе после выполнения тестов. 
 
Вот код VerySoft:
 
public void VerySoft(Action testCode)
{
   try
   {
       testCode();
   }
   catch (Exception exception) 
   {
        SomeGlobalHasErrors = true;
        SomeGlobalListWithExceptions.Add(exception);
   }
}
А вот как это можно в тестах использовать:
 
VerySoft(  
                 () => Assert.IsTrue(false, "Verify that true is false") 
             );
 
Так же, обратите внимание на мой доклад : Обходные пути в автоматизированном тестировании

Он будет по теме.