我试图从一些现有的类测试逻辑.由于它们非常复杂并且在生产中,因此不可能重新考虑目前的类别.
我想要做的是创建一个模拟对象并测试一个内部调用另一个非常难以模拟的方法的方法.
我是否遗漏了某些东西,或者这是不可能在没有重新分类的情况下进行测试?
我已经尝试了所有不同的模拟类型(Strick,Stub,Dynamic,Partial等),但是当我尝试设置行为时,它们都会调用该方法.
- using System;
- using MbUnit.Framework;
- using Rhino.Mocks;
- namespace MMBusinessObjects.Tests
- {
- [TestFixture]
- public class PartialMockExampleFixture
- {
- [Test]
- public void Simple_Partial_Mock_Test()
- {
- const string param = "anything";
- //setup mocks
- MockRepository mocks = new MockRepository();
- var mockTestClass = mocks.StrictMock<TestClass>();
- //record beahvIoUr *** actualy call into the real method stub ***
- Expect.Call(mockTestClass.MethodToMock(param)).Return(true);
- //never get to here
- mocks.ReplayAll();
- //this is what i want to test
- Assert.IsTrue(mockTestClass.MethodIWantToTest(param));
- }
- public class TestClass
- {
- public bool MethodToMock(string param)
- {
- //some logic that is very hard to mock
- throw new NotImplementedException();
- }
- public bool MethodIWantToTest(string param)
- {
- //this method calls the
- if( MethodToMock(param) )
- {
- //some logic i want to test
- }
- return true;
- }
- }
- }
- }