我是xUnit.net和AutoFixture的新手。
我目前正在研究“ testproject”以熟悉xUnit.net和Autofixture。我不了解一件事。
[Fact]和之间有什么区别[Theory, AutoMoqData]?
您能否告诉我以下两个代码是否相等?我之所以这样问,是因为这两项考试都能成功完成,但是我想以正确的方式学习它。
[Fact]
public void UpdateVersionWillUpdateCorrectlyInRepository()
{
    var fixture = new Fixture().Customize(new AutoMoqCustomization());
    var contract = fixture.Create<VersionContract>();
    var version = fixture.Create<Version>();
    fixture.Freeze<Mock<IContractMapper>>()
        .Setup(r => r.Map(contract)).Returns(version);
    var repMock = fixture.Freeze<Mock<VersionRepository>>();
    var sut = fixture.Create<VersionManagementService>();
    sut.UpdateVersion(contract);
    repMock.Verify(r => r.UpdateVersion(version));
}
和
[Theory, AutoMoqData]
public void UpdateVersionWillUpdateCorrectlyInRepository(
    VersionContract contract,
    Version version,
    [Frozen]Mock<IContractMapper> mapMock,
    [Frozen]Mock<VersionRepository> repMock,
    VersionManagementService sut)
{
    mapMock.Setup(r => r.Map(contract)).Returns(version);
    sut.UpdateVersion(contract);
    repMock.Verify(r => r.UpdateVersion(version));
}
是什么让我认为关键字[Fact]和有所不同[Theory]。
我假设[Theory]关键字告诉xUnit.net框架,所提供的数据来自某个地方,那里某个地方是Autofixture。而[Fact]xUnit并没有告诉任何有关数据源的信息,因此我需要手动构建对象。