作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我尝试使用 Moq 时它仍然调用的原始方法。这是我的代码:
var mockedBetRepository = new Mock<BetRepository>(new FakeSiteContext());
mockedBetRepository.CallBase = true;
Bet bet = new Bet();
mockedBetRepository.Setup<Bet>(m => m.UpdateBet(bet)).Returns(bet);
betRepository = mockedBetRepository.Object;
稍后在代码中,调用了 betRepository.UpdateBet(bet)
,但调用的不是我模拟的方法,而是类的方法:
public virtual Bet UpdateBet(Bet betToUpdate)
{
siteContext.Entry(betToUpdate).State = System.Data.EntityState.Modified;
siteContext.SaveChanges();
return betToUpdate;
}
为什么会这样?
最佳答案
我发现了问题。
如果我替换
Bet bet = new Bet();
mockedBetRepository.Setup<Bet>(m => m.UpdateBet(bet)).Returns(bet);
有了这个
mockedBetRepository.Setup<Bet>(m => m.UpdateBet(It.IsAny<Bet>())).Returns((Bet b) => b);
然后就可以了。
关于c# - Moq Setup 不工作,原来的方法仍然被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153879/
如何使用 Blazor 在 Linux 平台下运行 Desktop 程序 本文将讲解如何使用 Blazor 运行跨平台应用,应用到的技术有以下几点 Blazor
低并发的友友们好,我是闪客。 Lambda 表达式非常方便,在项目中一般在 stream 编程中用的比较多。 List<Student> studen
我是一名优秀的程序员,十分优秀!