Рассмотрим, что у меня есть метод M()
который будет вызываться во время выполнения тестов T1()
и T2()
.
Есть ли способ узнать, что M
будет выполняться в T1
и T2
?
Я знаю, что это невозможно будет узнать через код. Но использование истории исполнения Unit Test тоже хорошо.
OpenCover (также доступный через nuget) имеет это как функцию -coverbytest
, результаты которой можно визуализировать с помощью ReportGenerator.
NCrunch - отличный инструмент для тестирования (оплачивается), который показывает охват тестирования (в том числе в этих методах) встроенный и отчетный (метрики).
NSubstitute (и другие) позволяют вам выполнять проверки, такие как .Recieved()
которые позволяют вам определять как ожидаемые оба аргумента, так и сколько раз вы ожидали, что он будет вызван (или не вызван!)
http://nsubstitute.github.io/help/received-calls/
[Test]
public void Should_execute_command_the_number_of_times_specified() {
var command = Substitute.For<ICommand>();
var repeater = new CommandRepeater(command, 3);
//Act
repeater.Execute();
//Assert
command.Received(3).Execute(); // << This will fail if 2 or 4 calls were received
}