有没有办法指定 ANYTHING 作为 NUnit Mocks Expect 调用的参数?
我正在使用 NUnit 模拟,并且想指定我期望一个调用,但没有说明参数是什么,例如:
mock.ExpectAndReturn("Equals", true, ANY_ARGUMENT);
显然填写正确的语法而不是 ANY_ARGUMENT。
有办法做到这一点吗?
如果我未指定任何参数 - NUnit 将无法通过测试,因为它需要 0 个参数,但收到了 1 个参数。
I'm using NUnit mocks and would like to specify that I expect a call but without saying what the arguments will be for example:
mock.ExpectAndReturn("Equals", true, ANY_ARGUMENT);
Obviously filling in the correct syntax instead of ANY_ARGUMENT.
Is there a way to do this?
If I specify no arguments - NUnit fails the test because it expected 0 arguments but received 1.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
查看 Reflector 中 nunit.mocks.dll 的 2.5.2 版本,似乎没有一种方法可以完成您正在寻找的操作。 NUnit 是开源的,因此一种选择是获取代码并添加功能。
Looking at version 2.5.2 of nunit.mocks.dll in Reflector, it doesn't appear there is a method that does what you are looking for. NUnit is open source, so one option is to get the code and add the feature.
是的,NUnit Mocks 中有这样的功能。
使用 SetReturnValue 代替 ExpectAndReturn。第一个函数,顾名思义,指定输入对象和返回对象。最后一个函数只是为特定函数指定一个返回对象。
使用:interfaceMock.SetReturnValue("SomeRetrunFunction", someReturnFunction);
Yes there is a such a function in NUnit Mocks.
Instead of the ExpectAndReturn use SetReturnValue. First function, as it names tell you, you specify input object and return object. Last function just specify a return object for the specific function.
Use:
interfaceMock.SetReturnValue("SomeRetrunFunction", someReturnFunction);
你有没有尝试过:
Have you tried:
您可以实现 IResolveConstraint 的新实例,它接受任何内容并将其用作测试中的参数。 NUnit 对待 IResolveConstraint 实例的方式与对待任何其他对象不同,使用 Assert.That 而不是 Assert.AreEqual 来验证其正确性。
例如。
myMock.ExpectAndReturn("mockedMethod", argument1, new AcceptsAnythingConstraint())
You can implement a new instance of IResolveConstraint that accepts anything and use that as a parameter in your test. NUnit treats instances of IResolveConstraint differently than any other object, using Assert.That, instead of Assert.AreEqual to verify its correctness.
Eg.
myMock.ExpectAndReturn("mockedMethod", argument1, new AcceptsAnythingConstraint())