2015-11-18 28 views
0

我對c#非常陌生我一直負責創建一個測試,告訴我搜索過程需要多長時間。所以我點擊一個搜索按鈕。然後我等待結果出現。以單元測試的形式進行秒錶測試的方法

我想以我的三重A的單元測試的形式嘗試它測試理想情況下可以用不超過3秒來完成它的搜索。

什麼是最好的方法來解決這個問題?我需要在手之前做任何設置嗎?

到目前爲止我只有通用代碼。

[TestMethod] 
public void LocationNameSearch() 
{ 
    //Arrange 


    //Act 


    //Assert 


}} 

更新: 我有在試圖建立一個基本的秒錶,然後我將建立在我從開發代碼所需要的數據一展身手。這個斷言我在哪裏出錯?

[TestMethod] 
    public void LocationNameSearch() 
    { 
// Create new stopwatch. 
Stopwatch stopwatch = new Stopwatch(); 

// Begin timing. 
stopwatch.Start(); 

// Do something. 
for (int i = 0; i > 1000; i++) 
{ 

} 

// Stop timing. 
stopwatch.Stop(); 

//Assert 
Assert.AreEqual(stopwatch.Stop, 1); 


} 
+0

你在問如何使用'StopWatch'類嗎?或者如何編寫單元測試? – Amy

+2

當您想要檢查某個過程的實際輸出時,測試非常有用。在這種情況下,它看起來像是在試圖測量一些東西來收集信息,所以它看起來不像是單元測試的責任。 –

+0

好吧,簡而言之,我們需要測試來查看從A到B搜索需要多長時間,但這不會超過3秒。如果它需要超過3秒鐘,那麼我需要它發出警告。我在@Amy之前完成了單元測試。可能是這樣的情況,我原先認爲的方式如果不是最好的方式,那麼替代方案是什麼? – Peter

回答

0

這不是使用Stopwatch類,但我更喜歡使用[Timeout]屬性。

用法:

[TestMethod] 
[Timeout(3000)] 
public void LocationNameSearch() { } 

如果測試時間超過3秒的時間才能完成,測試將失敗。

+0

似乎簡單進出口猜測我調用的代碼中的方法,如果它需要超過3秒,因爲你說它失敗。這正是需要的。 – Peter

0

斷言應檢查秒錶的Elapsed屬性,並將其與允許進程的最大時間進行比較。

+0

啊涼爽耶完成stopwatch.ElapsedMiliseconds。進步:) – Peter

相關問題