TypeMock странное поведение - PullRequest
2 голосов
/ 10 июля 2011

Я обнаружил странное поведение при использовании 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 или я что-то упустил?

Спасибо

Kfir

1 Ответ

2 голосов
/ 10 июля 2011

Isolator по умолчанию игнорирует аргументы, переданные функциям в WhenCalled. В вашем случае вы должны использовать WithExactArguments для ожидания ожидания:

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