用于检查对象是否成功添加到表中的TestMethod

时间:2018-12-12 18:11:49

标签: .net sql-server unit-testing async-await

到目前为止,我有这个:

 using (var actContext = new ItsAllAboutTheGameDbContext(contextOptions))
        {
            var cardService = new CardService(actContext);
            creditCardResult = await cardService.AddCard("3242423532532434", "332", DateTime.Parse("02.03.2020"), user);
            actContext.CreditCards.Add(creditCardResult);
            await actContext.SaveChangesAsync();


        }

        //Assert

将卡添加到上下文中的CreditCards表后,如何断言是否成功添加了卡?我需要检查是否将其添加到内存数据库(actContext)中?

1 个答案:

答案 0 :(得分:1)

您真的要断言数据已插入表中吗?

您应该在控制器中注入DBContext工厂,并在单元测试中使用假工厂。

公共类MyController:控制器 {     公共MyController(Func dbContextFactory)...

...

    using (var actContext = dbContextFactory())

}

然后,在测试中,您只需注入一个工厂来模拟上下文。

更好的是,在控制器中注入组件。

否则,您只需查询数据库即可确定数据是否存在。