我发现使用typemock进行单元测试的奇怪行为 -
internal class MyClass
{
public static int foo(int param)
{
return param;
}
}
[TestClass]
public class UnitTest1
{
[TestMethod, Isolated]
public void TestMethod1()
{
Isolate.WhenCalled(()=>MyClass.foo(1)).WillReturn(-1);
Isolate.WhenCalled(() => MyClass.foo(2)).WillReturn(-2);
var p1 = MyClass.foo(1); //p1 = -1
var p2 = MyClass.foo(1); //p2 = -2 (!!!)
}
}
在调试模式下,p1为-1,p2为-2 这是typemock中的错误还是我错过了什么?
谢谢,
幼狮
答案 0 :(得分:2)
默认情况下,Isolator会忽略传递给WhenCalled
中函数的参数。在您的情况下,您应该使用WithExactArguments
来保持期望:
Isolate.WhenCalled(() => MyClass.foo(2)).WithExactArguments().WillReturn(-2);