我正在使用NUnit模拟,并希望指定我期待一个调用,但不知道参数将是什么例如:
mock.ExpectAndReturn("Equals", true, ANY_ARGUMENT);
显然填写了正确的语法,而不是ANY_ARGUMENT。
有办法做到这一点吗?
如果我没有指定参数--NUnit未通过测试,因为它预期0个参数但收到1。
答案 0 :(得分:2)
在Reflector中查看nunit.mocks.dll的2.5.2版本,似乎没有一种方法能够满足您的需求。 NUnit是开源的,因此一个选项是获取代码并添加功能。
答案 1 :(得分:2)
是的,NUnit Mocks中有这样的功能。
而不是ExpectAndReturn使用SetReturnValue。第一个函数,正如它的名字告诉你的那样,你指定输入对象和返回对象。最后一个函数只是为特定函数指定一个返回对象。
使用:interfaceMock.SetReturnValue("SomeRetrunFunction", someReturnFunction);
答案 2 :(得分:1)
你试过了吗?
mock.SetReturnValue(true);
mock.Expect("Equals");
答案 3 :(得分:0)
您可以实现IResolveConstraint的新实例,该实例接受任何内容并将其用作测试中的参数。 NUnit使用Assert以不同于任何其他对象的方式处理IResolveConstraint的实例。而不是使用Assert.AreEqual来验证其正确性。
例如
myMock.ExpectAndReturn(“mockedMethod”,argument1,new AcceptsAnythingConstraint())