我的单元测试中有以下代码:
var file = m_Mockery.NewMock<IFile>();
Stream s = new MemoryStream();
Expect.Once.On( file ).Method( "OpenRead" )
.With( "someFile.mdb")
.Will( Return.Value( s ) );
...
...
...
// this runs the real code that contains the OpenRead call
productionCodeObj.DoIt("someFile.mdb");
m_Mockery.VerifyAllExpectationsHaveBeenMet();问题是当我调用DoIt (它调用OpenRead)时,我得到一个异常,说找不到文件。我是不是误解了nmock的作用?我不希望我的单元测试命中真正的文件系统...
发布于 2012-06-23 11:04:30
是的,我认为你误解了NMock的作用。它用于创建传递到测试对象中的对象,以便它们作用于这些模拟对象。由于您的“mock”似乎是一个FileStream实例本身的新闻,所以它不会使用您的productionCodeObj。您必须将file传入其中。
https://stackoverflow.com/questions/11165418
复制相似问题