2014-11-03 42 views
1

考慮我有一個方法M()將在執行測試T1()T2()期間被調用。如何查找在執行期間調用特定方法的單元測試?

有沒有辦法找出M將在T1T2執行?

我知道通過代碼找不到它是不可能的。但是使用Unit Test的執行歷史也很好。

+1

代碼覆蓋工具使用這些機制。那是你在找什麼? – 2014-11-03 16:12:55

+0

單元測試框架通常允許監聽一個方法是否被調用。 Nunit,Rhinomocks – MrFox 2014-11-03 16:15:56

+0

@MrFox我正在使用Nunit。但我在哪裏可以找到? – mehrandvd 2014-11-03 16:18:57

回答

4

OpenCover(也可通過nuget獲得)將其作爲功能-coverbytest,其結果可以使用ReportGenerator可視化。

+0

愛OpenCover。謝謝Shaun的所有好作品! – 2014-11-04 01:42:20

+0

@SrikanthVenugopalan不客氣 - 這是一個愛的勞動 – 2014-11-04 03:38:16

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 
} 
相關問題