表达式树可能不包含在moq框架中使用可选参数的调用或调用

时间:2015-11-25 19:16:16

标签: asp.net unit-testing moq xunit

在更新基于.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
}

1 个答案:

答案 0 :(得分:0)

问了问题已经有一段时间了,但是今天我遇到了同样的问题。

在测试大众运输用户时,我需要验证ConsumeContext <> .Defer方法。

我刚刚改变了

_mockConsumeContext.Verify(cc => cc.Defer(It.IsAny<TimeSpan>()), Times.Once);

_mockConsumeContext.VerifySet(cc => cc.Defer(It.IsAny<TimeSpan>()), Times.Once);

它解决了我的问题,也许也可以解决您的问题。