TypeMock奇怪的行为

时间:2011-07-10 11:16:50

标签: unit-testing mocking typemock typemock-isolator

我发现使用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中的错误还是我错过了什么?

谢谢,

幼狮

1 个答案:

答案 0 :(得分:2)

默认情况下,Isolator会忽略传递给WhenCalled中函数的参数。在您的情况下,您应该使用WithExactArguments来保持期望:

Isolate.WhenCalled(() => MyClass.foo(2)).WithExactArguments().WillReturn(-2);