Flo*_*ian 4 c# unit-testing mstest
一切都在标题中,我想知道这是不是一个好习惯:
[TestMethod]
public void Compute_Array_In_Less_1_Second()
{
Stopwatch watcher = new Stopwatch();
int[] A = Enumerable.Range(0, 50000).Select(i => GetRandomNumber(MIN_INT, MAX_INT)).ToArray();
watcher.Start();
int[] R = Program.MethodThatReturnsAnArray(A);
watcher.Stop();
if (watcher.ElapsedMilliseconds > 1000)
Assert.Fail("The method runs in more 1 second");
}
Run Code Online (Sandbox Code Playgroud)
谢谢
您应该使用测试框架提供的适当机制,例如:http://nunit.org/index.php?p =timeout&r=2.5
但请注意,您不想在任何地方都这样做(为了衡量性能),而是为了测试该单元实际上是否及时完成或超时(如果需要这样做)。