小编ste*_*nze的帖子

事实与理论的区别? - xUnit.net

我是xUnit.net和AutoFixture的新手.

我正在开发一个"测试项目"来熟悉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));
}
Run Code Online (Sandbox Code Playgroud)

[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));
}
Run Code Online (Sandbox Code Playgroud)

是什么让我认为关键词[Fact]和关键词存在差异[Theory].

我假设[Theory]关键字告诉xUnit.net框架提供的数据来自某处,其中某处是Autofixture.虽然[Fact]告诉xUnit没有关于数据的来源,我需要手动构建对象.

c# xunit.net autofixture

60
推荐指数
2
解决办法
3万
查看次数

父子一对一关系相同的表

我有一个关于如何在Microsoft SQL-Server 2012中实现表关系的问题.

我有一个Table(MyTable),它应该包含一个Parent/Child结构.一个父母可能有一个孩子,一个孩子只有一个父母.这是一种经典的一对一关系.最顶层的条目显然可能没有父级.(这是通过可空的属性建模的)

当我尝试在MS-SQL中对此进行建模时,我收到如下表.

从EntityFramework生成

这是我的代码:

CREATE TABLE [dbo].[MyTable](
    [Id] [uniqueidentifier] PRIMARY KEY NOT NULL,
    [Name] [nvarchar](200) NOT NULL,
    [ParentObjectId] [uniqueidentifier] NULL
)

GO

ALTER TABLE [dbo].[MyTable]  WITH CHECK ADD  CONSTRAINT [FK_MyTable_ParentObject] FOREIGN KEY([ParentObjectId])
REFERENCES [dbo].[MyTable] ([Id])
GO

ALTER TABLE [dbo].[MyTable]  WITH CHECK ADD  CONSTRAINT [Unique_ParentId] UNIQUE(ParentObjectId)
GO

ALTER TABLE [dbo].[MyTable] CHECK CONSTRAINT [FK_MyTable_ParentObject]
GO
Run Code Online (Sandbox Code Playgroud)

UNIQE约束应确保一个孩子最多只有一个父母.

但实体框架不允许我将属性更改为一对一关系.它总是产生一对多的关系.

编辑:代码是DB-First.

您是否知道如何在MS-SQL和EntityFramework中正确建模?

c# sql sql-server entity-framework linq-to-sql

5
推荐指数
1
解决办法
1405
查看次数