我正在尝试为一些使用DbContext的逻辑编写一些单元测试。 在单元测试中,我模拟了dbContext并设置了期望值。 在一处,我的代码如下:
Stats = Row("name", "timestamp", "category", "value")
stat1 = Stats('name1', "2019-01-17 00:00:00", "A", 11.23)
stat2 = Stats('name2', "2019-01-17 00:00:00", "A", 14.57)
stat3 = Stats('name3', "2019-01-10 00:00:00", "B", 2.21)
stat4 = Stats('name4', "2019-01-10 00:00:00", "B", 8.76)
stat5 = Stats('name5', "2019-01-17 00:00:00", "A", 18.71)
stat6 = Stats('name6', "2019-01-10 00:00:00", "A", 17.78)
stat7 = Stats('name7', "2019-01-10 00:00:00", "A", 5.52)
stat8 = Stats('name8', "2019-01-10 00:00:00", "A", 9.91)
stat9 = Stats('name9', "2019-01-17 00:00:00", "B", 1.16)
stat10 = Stats('name10', "2019-01-17 00:00:00", "B", 12.0)
stat_lst = [stat1 , stat2, stat3, stat4, stat5, stat6, stat7, stat8, stat9, stat10]
df = spark.createDataFrame(stat_lst)
我正在模拟此dbContext并进行如下设置:
var myVar= await dbContext.Set<MyModel>().Where(.. some conditions..).FirstOrDefaultAsync();
但是,在代码中的上述位置,单元测试返回null。
在代码的早期,我设置了另一个dbContext期望,该期望在单元测试中返回正确的值:
var myModelVar = new MyModel();
myModelVar.Id = Guid.NewGuid();
var myModelDbSet = new TestDbSet<MyModel>();
myModelDbSet .Add(myModelVar );
mockDbContext.Setup(dbContext => dbContext.Set<MyModel>()).Returns(myModelDbSet);
我收到的TestDbSet期望值为空值,并且无法理解为什么会发生这种情况?