省略方法执行存根对象

时间:2016-05-25 12:12:13

标签: c# .net unit-testing nunit rhino-mocks

我在我的一个方法中列出了一个代码,我想测试一下:

using (var obj1 = provider.GetObj1Instance())
{
    /*  Do some stuff  */
    obj1.DoAction();
}

提供者是我嘲笑的对象:

provider = MockRepository.GenerateMock<IProvider>();

但方法GetObj1Instance()返回具体类型的对象。在模拟之后我现在得到NullRefrenceException,因为来自模拟提供程序的方法GetObj1Instance()返回null。

然后我抄写了obj1:

var stubbedObj1 = MockRepository.GenerateStub<Obj1>();
provider.Stub(o => o.GetObj1Instance()).Return(stubbedObj1);

但这还不够,因为在obj1.DoAction()中;引用了引发NullReferenceException

的私有变量

在测试执行期间,我想不执行obj1.DoAction()或只是注册它被调用。如何实现?

以下这一行并不能防止DoAction方法原始执行。

stubbedObj1.Stub(u => u.DoAction()).Do(new Action(() => { }));

0 个答案:

没有答案