g_b*_*g_b 3 c# unit-testing moq xunit.net
所以当有返回值时,我可以在 Moq 中这样做
mockStudentRepository.Setup(m => m.Create(It.IsAny<IStudent>())).Returns<IStudent>(s =>
{
students.Add(s);
return 1;
});
Run Code Online (Sandbox Code Playgroud)
所以这个 lambda 作为存储库的模拟实现运行。
当方法返回 void 时,我该如何执行此操作?当我尝试相同的代码时,返回不可用。我现在有这样的事情:
mockStudentRepository.Setup(m => m.Update(It.IsAny<IStudent>()));
Run Code Online (Sandbox Code Playgroud)
我想放置一个 lambda,它将在调用 Update 时运行,就像上面的第一个代码一样。我怎样才能做到这一点?
我相信您正在寻找扩展Callback。
mockStudentRepository
.Setup(m => m.Update(It.IsAny<IStudent>()))
.Callback<IStudent>(s => {
var student = students.Where(x => x.Id == s.Id).FirstOrDefault();
if(student != null) {
//...
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |