Moq到FakeItEasy迁移 - 如何迁移Verify()?

时间:2014-08-07 11:10:13

标签: c# .net moq fakeiteasy

我正在将Moq测试迁移到FakeItEasy,我已经遇到了一个我不知道如何迁移的案例。

案例是:

    [TestMethod]
    public void Should_EditItem()
    {
        _itemMock.Verify(
            item => item.Edit((ItemTypeId)2, (ProcessId)1, "TITLE", "TEXT", new DateTime(2012, 11, 28), (UserId)321,
                              (GroupId)321, (ItemPriorityId)1, ItemStatus.Open, (ItemTypeStatusId)3, (PlantId)0,
                              (UserId)123, 1, null, 15, "REF", It.IsAny<RegionId>(), It.IsAny<CountryId>(), It.IsAny<string>()));
    }

如何将此通话转移到FakeItEasy?它甚至做了什么?

1 个答案:

答案 0 :(得分:2)

Moq说,“验证使用这些参数调用Edit方法”。

FakeItEasy文档上的2分钟(https://fakeiteasy.readthedocs.io/en/stable/argument-constraints/),您应该可以这样说:

A.CallTo(() => item.Edit(((ItemTypeId)2, (ProcessId)1, "TITLE", "TEXT", new DateTime(2012, 11, 28), (UserId)321,
                          (GroupId)321, (ItemPriorityId)1, ItemStatus.Open, (ItemTypeStatusId)3, (PlantId)0,
                          A<UserId>.That.Matches(x=>x==(UserId)123), 1, null, 15, "REF", A<RegionId>, A<CountryId>, A<string>)).MustHaveHappened();

或类似的东西。

//Moq
_mock.Verify(x=>x.method());
It.IsAny<string>()
//FIE
A.CallTo(x=>x.method()).MustHaveHappened();
A<string>.Ignored // or A<string>._