數據訪問我想請問我該如何使用犀牛嘲弄在下面的例子中:如何嘲笑的私有方法
Public Class CustomerService
{
Public void Register()
{
Action1();
Action2();
}
private action1()
{
//this is a call to other dll.
var isExist = _dataComponentService.CheckIfUserExist(userName);
}
private action2()
{
//do some more work...
// Call to dataComponentService. write some data in the database....
}
}
這只是爲真正的代碼,我需要更新的例子。 當前的單元測試正在對數據庫服務進行真正的調用。 我想編寫一個單元測試,用於檢查公共Register()中的行爲,而不需要對數據庫服務進行真正的調用。
是否可以嘲弄對位於私人方法中的其他組件的調用,而無需重新編寫洞服務?
感謝你在先進
大利
您應該使用依賴注入爲'CustomerService'類提供'dataComponentService'對象。我建議使用構造函數注入。在應用程序運行時期間,'dataComponentService'設置爲真正的數據庫訪問實例,但在測試場景中,您可以使用模擬對象。網上有很多關於DI與單元測試的文章,例如Mark Seemann的博客:[link](http://blog.ploeh.dk)。 – sgnsajgon