Более гибкий Assert.ThrowsException? - PullRequest
       26

Более гибкий Assert.ThrowsException?

1 голос
/ 12 января 2020

MSTest теперь позволяет вам проверять, что определенный фрагмент кода генерирует определенный тип исключения, через:

Assert.ThrowsException<MyException>(() => foo.Bar());

Однако мне нужен более гибкий тест исключений; Мне нужно не только проверить тип исключения, но и проверить, что его сообщение начинается с определенной строки (а не совпадает с точной строкой исключения). Есть ли способ сделать это с помощью MSTest? Если нет, то какой лучший способ для меня это сделать? Есть ли другая среда тестирования, которая справится с этим лучше?

В идеале, Assert должен получить вторую забаву c, которая прошла в брошенном Исключении, и эта забава c могла бы протестировать Исключение, как бы оно ни хотело, и верните true или false, чтобы указать, что подтверждение успешно или неудачно.

1 Ответ

4 голосов
/ 12 января 2020
var ex = Assert.ThrowsException<MyException>(() => foo.Bar());
Assert.IsTrue(ex.Message.StartsWith("prefix"));
...