我是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没有关于数据的来源,我需要手动构建对象.
我有一个关于如何在Microsoft SQL-Server 2012中实现表关系的问题.
我有一个Table(MyTable),它应该包含一个Parent/Child结构.一个父母可能有一个孩子,一个孩子只有一个父母.这是一种经典的一对一关系.最顶层的条目显然可能没有父级.(这是通过可空的属性建模的)
当我尝试在MS-SQL中对此进行建模时,我收到如下表.
这是我的代码:
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中正确建模?