使用RhinoMocks-我可以获取被调用函数的参数吗?我是说;我可以从函数调用中获取一些未知参数吗?我有一个模拟,我希望在这个模拟上调用一些函数。我知道其中一个参数,但另一个参数是未知的,因为它来自使用模拟并在其上调用函数的类。更具体地说——在这种情况下——未知参数是一个lambda函数。这是一个回调函数,应该在函数完成执行时调用。由于模拟阻止调用回调,我想获取它并自己调用它。所以;我想检查函数是否被调用。我想确保一些论点是预期的。我想找出未知的参数,然后再对它们进行一些操作。假设两个参数都是整数(为简单起见)我想做这样的事情:intunknownInt;_fakeSomething
运行这段代码:_foo=MockRepository.GenerateStub();_foo.Stub(x=>x.Foo()).Return("sdf");什么时候publicinterfaceIBar{stringFoo();}publicclassBar:IBar{publicstringFoo(){thrownewNotImplementedException();}}抛出NotSupportedException-“无法创建密封类的模拟”。我理解为什么你不能模拟密封类(尽管TypeMock中有解决方案),但是模拟返回密封类(字符串)的类有什么问题?
当类的构造函数为空时,使用RhinoMocks模拟具体类似乎非常容易:publicclassMyClass{publicMyClass(){}}但是如果我添加一个带参数的构造函数并删除不带参数的构造函数:publicclassMyClass{publicMyClass(MyOtherClassinstance){}}我倾向于得到一个异常(exception):System.MissingMethodException:Can'tfindaconstructorwithmatchingarguments我试过在对Mock或Stub的调用中放入空值,但它不起作用。我可以创建缺少无参数构造函
当类的构造函数为空时,使用RhinoMocks模拟具体类似乎非常容易:publicclassMyClass{publicMyClass(){}}但是如果我添加一个带参数的构造函数并删除不带参数的构造函数:publicclassMyClass{publicMyClass(MyOtherClassinstance){}}我倾向于得到一个异常(exception):System.MissingMethodException:Can'tfindaconstructorwithmatchingarguments我试过在对Mock或Stub的调用中放入空值,但它不起作用。我可以创建缺少无参数构造函
Ninject和RhinoMocks或Moq等模拟框架有什么区别?我用Google搜索了这个,但仍然不清楚。 最佳答案 Ninject是DependencyInjection对于.NET。RhinoMocks和Moq都是模拟框架。现在两者已经没有任何关系了。我真的很难理解这两者,所以我在这里尝试解释一下。依赖注入(inject):是一种控制反转的实现(姑且称之为)。你不要混淆两者。您正在控制从代码中创建对象。依赖项,例如IRepository不会由您的类/代码创建,而是由其他人注入(inject),即依赖项注入(inject)框架。
Ninject和RhinoMocks或Moq等模拟框架有什么区别?我用Google搜索了这个,但仍然不清楚。 最佳答案 Ninject是DependencyInjection对于.NET。RhinoMocks和Moq都是模拟框架。现在两者已经没有任何关系了。我真的很难理解这两者,所以我在这里尝试解释一下。依赖注入(inject):是一种控制反转的实现(姑且称之为)。你不要混淆两者。您正在控制从代码中创建对象。依赖项,例如IRepository不会由您的类/代码创建,而是由其他人注入(inject),即依赖项注入(inject)框架。
我正在使用RhinoMocks。现在我想断言调用了某个函数,但我只关心其中一个参数。我可以在只指定一个参数的地方执行AssertWasCalled吗?在下面的示例中,我想忽略发送到SomeOtherFunction()的第二个参数的内容。IE。我想检查是否使用第一个参数123调用了SomeOtherFunction,我不关心第二个参数是什么。[Test]publicvoidSomeTest(){varmyMock=MockRepository.GenerateMock();varmyObj=newMyClass(myMock);myObj.foo()myMock.AssertWasCa
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。为了帮助我的团队编写可测试的代码,我提出了这个简单的最佳实践列表,以提高我们的C#代码库的可测试性。(其中一些要点涉及RhinoMocks的局限性,RhinoMocks是C#的模拟框架,但这些规则也可能适用于更普遍的情况。)有人有他们遵循的最佳实践吗?为了最大限度地提高代码的可测试性,请遵循以下规则:先写测试,再写代码。原因:这确保您编写可测试的代码,并