在更新基于.netcore beta 5并更新为rc1的项目后出现moq问题。在更新之前,测试已经完成,现在我有一个错误:"表达式树可能不包含使用可选参数的调用或调用"。请帮我解决它。
[Fact]
public async void ReturnPostUserAnswerResult()
{
// Arrange
var mockSet = new Mock<DbSet<QuestionsToUsers>>();
var _applicationDbContext = new Mock<ApplicationDbContext>();
_applicationDbContext.Setup(a => a.QuestionToUsers).Returns(mockSet.Object);
var controller = new UserQuizController(_applicationDbContext.Object);
// Act
var result = new QuestionsToUsers()
{
Answer = true,
QuestionID = 99,
TestpackID = 99,
Id = 99,
UserID = "TestUser"
};
await controller.PostUserAnswerResult(result);
mockSet.Verify(m => m.Add(It.IsAny<QuestionsToUsers>())); //here error
}
有人问我这个问题已经有一段时间了,但今天我遇到了同样的问题。
在测试masstransit消费者时,我需要验证ConsumerContext<>。延时方法。
我刚换了
_mockConsumeContext.Verify(cc => cc.Defer(It.IsAny<TimeSpan>()), Times.Once);
至
_mockConsumeContext.VerifySet(cc => cc.Defer(It.IsAny<TimeSpan>()), Times.Once);
它解决了我的问题,也许也能解决你的问题。