“调用失败”和“设置不匹配”同时

时间:2018-06-29 14:26:49

标签: c# moq xunit

我正在编写一些单元测试并模拟某些部分。我分别理解这些错误的两种含义。我的问题是它们同时出现在同一方法中,但是我可以模拟同一类的其他方法。只是一种特定的方法。

我已经检查过:

  1. 混淆不同的名称空间和相同的类名
  2. 有些名称相同但签名不同的方法
  3. 在方法调用之后发生了模拟。这就是测试的样子。我对相同类的其他方法使用相同的结构,并且没有问题:

    private readonly Mock<IDependency> mockDependency;
    
    [Fact]
    public void GetSomeThingByIdTest()
    {
        SetupMock();
        ITestedInterface testedClass = CreateTestedImpl();
        ISomeThing expected = new SomeThing();
        ISomeThing mocked = testedClass.GetSomeThingById("someId");
    
        Assert.Equal(expected, mocked);
    }
    
    private void SetupMock()
    {
        var mockSomeThing = new Mock<ISomeThing>();
        mockDependency.Setup(x => x.GetSomeThingById("someId")).Returns(mockSomeThing.Object);
    }
    
    private ITestedInterface CreateTestedImpl() => new Tested(mockDependency.Object);
    

我得到:

Moq.MockException ITestedInterface.GetSomeThingById(someId)调用因模拟行为“严格”而失败。

Moq.MockException 以下设置不匹配: ITestedInterfacex => x.GetSomeThingById(someId)

同时。 任何想法为什么会这样?

0 个答案:

没有答案