如何找到在执行过程中调用特定方法的单元测试?

时间:2014-11-03 16:08:28

标签: c# .net visual-studio unit-testing code-coverage

考虑我有一个方法M(),它将在执行测试T1()T2()时调用。

有没有办法找出MT1会执行T2

我知道通过代码找不到它是不可能的。但是使用单元测试的执行历史也很好。

2 个答案:

答案 0 :(得分:4)

OpenCover(也可通过nuget提供)将此功能设为-coverbytest,其结果可通过ReportGenerator显示。

答案 1 :(得分: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
}