2009-10-16 50 views
1

我正在尋找一些使用NMock2模擬CRUD應用程序數據庫調用的基本示例。CRUD應用程序的基本NMock數據庫示例

感謝,

克里斯

+0

您是否想要證明數據層被調用(使用Expect)或爲協作對象(使用存根)提供一些無害的行爲? – 2009-10-16 19:25:54

回答

1

設置:

[SetUp] 
    public void SetUp() 
    { 
     mocks = new Mockery(); 
     mockDBLayer = _mocks.NewMock<IDBLayer>(); 

     //Inject the dependency somehow 
     sut = new SUT(_mockDBLayer); 
    } 

測試:

[Test] 
    public void testMethodName_TestCase() 
    { 
     var dbRetrunValue = //whatever type 
     Expect.Once.On(mockDBLayer).Method("dbMethod").Will(Return.Value(dbRetrunValue)); 

     //exercise 
     var actual = sut.methodName(); 

     //Assert 
     ... 
    } 

驗證,如果你想讓它

[TearDown] 
    public void TearDown() 
    { 
     mocks.VerifyAllExpectationsHaveBeenMet(); 
    } 

我喜歡起訂量比較好,然而: http://code.google.com/p/moq/

1

「數據庫調用」是一個粗略的詞來猜測 - 你的意思測試您的DAL,或測試上面的一層?

如果你的意思是測試你的DAL,你需要看看你如何得到實際的DataReader或DataTable,或者其他什麼,以便你可以用模擬來替換它。

查看涵蓋IoC and mocking data access的博文,或者像that cover mocking a datareader這樣的文章入門。