我正在尝试使用 Xunit 为我的 ASP.NET Core 3.1 应用程序编写单元测试。
我使用 NBuilder(6.1 版)来创建一些测试数据,如下所示:
var listOne = Builder<DependantClassA>.CreateListOfSize(1)
.All()
.With(x => x.IntPropertyA = 60)
.With(x => x.MyClass = classList[0])
.Build().ToList();
dbcontext.DependantClassA.Add(listOne[0]);
dbcontext.SaveChanges();
当我执行此代码时出现错误
SqliteException:SQLite 错误 19:“外键约束失败”
但是,当我更改为:
var listTwo = new List<DependantClassA>
{
new DependantClassA
{
IntPropertyA = 60,
MyClass = classList[0],
}
};
dbcontext.DependantClassA.Add(listTwo[0]);
dbcontext.SaveChanges();
该模型刚刚添加到我的数据库中,没有任何问题。所以我的猜测是它必须对 Nbuilder 做一些事情,但我不知道我做错了什么或者我可以改变什么。
注意:classList
也是使用 NBuilder 创建的,但将这些对象添加到我的过程中没有问题dbContext
。
注 2:当我比较两个对象的属性时,我看不出有任何区别。