Как найти модульные тесты, которые вызывают определенный метод во время их выполнения?

1

Рассмотрим, что у меня есть метод M() который будет вызываться во время выполнения тестов T1() и T2().

Есть ли способ узнать, что M будет выполняться в T1 и T2?

Я знаю, что это невозможно будет узнать через код. Но использование истории исполнения Unit Test тоже хорошо.

  • 1
    Инструменты покрытия кода используют эти механизмы. Это то, что вы ищете?
  • 0
    Среды модульного тестирования часто позволяют прослушивать, вызывается ли метод. Монахиня, Rhinomocks
Показать ещё 2 комментария
Теги:
visual-studio
unit-testing
code-coverage

2 ответа

4
Лучший ответ

OpenCover (также доступный через nuget) имеет это как функцию -coverbytest, результаты которой можно визуализировать с помощью ReportGenerator.

  • 0
    Люблю OpenCover. Спасибо за хорошую работу, Шон!
  • 0
    @SrikanthVenugopalan, пожалуйста, это был труд любви
1

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
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню