2012-06-22 2 views
2

내 단위 테스트에서이 코드를 가지고 :NMock FileStream하는 방법?

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(); 

문제는 내가 (OpenRead를 호출) DOIT를 호출 할 때, 나는 파일을 찾을 수 없습니다라고 예외가 있습니다. nmock이하는 일을 오해하고 있습니까? 내 단위 테스트가 실제 파일 시스템에 충돌하는 것을 원하지 않습니다 ...

답변

2

예, 저는 NMock이하는 일에 대해 오해하고 있다고 생각합니다. 테스트중인 개체에 전달하는 개체를 만드는 데 사용되므로 해당 모의 개체에서 작동합니다. 귀하의 "productionCodeObj"뉴스가 FileStream 인스턴스 그 자체 인 것처럼 보이므로, 귀하의 모의를 사용하지 않을 것입니다. 너는 file을 그것으로 통과해야 할텐데.