2

単体テストに次のコードがあります。

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 の機能を誤解していますか? 単体テストで実際のファイルシステムにヒットさせたくありません...

4

1 に答える 1

2

はい、NMock の機能を誤解していると思います。これは、テスト対象のオブジェクトに渡すオブジェクトを作成するために使用され、それらのモック オブジェクトに作用します。あなたの「productionCodeObj」はFileStreamインスタンス自体をニュースしているように見えるので、モックを使用しません。あなたはそれに合格fileしなければならないでしょう。

于 2012-06-23T03:04:30.187 に答える