1 回答

TA貢獻1786條經驗 獲得超13個贊
實際上,你做得很好,并且做得很好(真正使用AAA的開發人員太少了,這非??杀?,但請記住,默認情況下Mock返回default(T)值。因此,您的Authorban方法被模擬并返回默認值(User),該默認值為空。只需讓它返回您的存根用戶:
var mockService = new Mock<IUserService>();
var user = new User()
{
UserId = 4,
IsAdmin = true,
Token = "12983912803981",
IsLogged = true,
MessagesSent = null,
MessagesReceived = null,
Nickname = "test3",
Password = "Str0ngP@ssword123",
UserChannels = null
};
mockService.Setup(x=> x.Authenticate(It.IsAny(), It.IsAny())).Returns(user);
或者@xander提出的更嚴格的版本:
mockService.Setup(x=> x.Authenticate("test3", "Str0ngP@ssword123")).Returns(user);
它還將檢查您是否實際使用了在 User 中傳遞的值,而不僅僅是盲目地返回 Ok()。
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報