2017-06-21 84 views
1

首次使用模擬創建單元測試。我有問題,因爲我在對象引用上出錯。模擬測試依賴注入對象引用

Mock<IAccount> mock = new Mock<IAccount>(); 
var testController = new AccountController(mock.Object); 

IActionResult result = testController.Withdraw(1,100,"sample"); 
Assert.IsInstanceOfType(result, typeof(RedirectToActionResult)); 

下我AccountController類存款方法

var _account = _Iaccount.GetAccountById(id); 
if (_account.Password != password) 
{ 
    ModelState.AddModelError("Password", "Invalid Password!"); 
} 

具有上_Iaccount錯誤,因爲它是在構造。

謝謝!

+0

可否請你添加更多的信息?例如你的控制器的代碼。此外,請附上整個錯誤消息。謝謝 – Christos

+0

如何註冊我的存儲庫接口?看來我需要先註冊它? –

回答

2

您必須設置一個模擬對象

var returnAccount = new Account { Name = "Ali" }; 
mock.Setup(s => s.GetAccountById(It.IsAny<Guid>())).Returns(returnAccount); 

GetAccountById將返回returnAccount