2015-11-18 5 views
0

Я очень новичок в C# Мне было поручено создать тест, который расскажет мне, как долго проходит процесс поиска. Поэтому я нажимаю кнопку поиска. Затем я жду появления результатов.Способы подхода к проверке стоп-часов в виде модульного теста

Я хотел бы попробовать его в форме единичного теста с моим тройным A. В идеале тест может занимать не более 3 секунд, чтобы завершить поиск.

Что было бы лучшим способом приблизиться к этому? и нужно ли мне делать какие-либо настройки перед рукой?

До сих пор у меня есть общий код.

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


    //Act 


    //Assert 


}} 

UPDATE: У меня идти на то, чтобы создать базовый секундомер, то я буду строить в данном мне нужно из кода Dev. Где я ошибаюсь в этом утверждении?

[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

Ах, круто, да, сделай секундомер. Прогресс :) – Peter