为什么可以';t Microsoft.VisualStudio.TestTools.UnitTesting获取Db
本文关键字:TestTools VisualStudio UnitTesting 获取 Db Microsoft 为什么 | 更新日期: 2023-09-27 18:08:13
- 项目:Web-Api
- 运行路径:打开TestExplorer,右键单击要测试的项目,左键单击调试选定的测试
- 问题描述:我用sql server探查器跟踪了sql server,sql server收到了请求并返回了Items。但是TDD项目一无所获。以下是相关代码:
// the test project test
[TestMethod]
public void GetCategoryTrees()
{
//Arrange
CategoryTreesController controller = new CategoryTreesController();
//Act
List<CategoryTree> result = controller.GetCategoryTrees();
//Assert
Assert.AreNotEqual(0, result.Count);
}
// the real project code
private ApplicationDbContext db = new ApplicationDbContext();
// GET: api/CategoryTrees
public List<CategoryTree> GetCategoryTrees()
{
db.CategoryTrees.Load();
return db.CategoryTrees.ToList();
}
当我在IE资源管理器中访问api/CategoryTrees时,我可以在即时窗口中获取项目。共有14项。但当我在前面提到的运行路径中运行测试项目时,我一无所获。请帮帮我,谢谢。
//below code was coded in immediate window under test mode
db.CategoryTrees.ToList()
Count = 0
db.CategoryTrees.Load()
Expression has been evaluated and has no value
//以下代码是访问IE模式下的即时窗口编码
db.CategoryTrees.ToList()
Count = 14
[0]: {Models.CategoryTree}
[1]: {Models.CategoryTree}
[2]: {Models.CategoryTree}
[3]: {Models.CategoryTree}
[4]: {Models.CategoryTree}
[5]: {Models.CategoryTree}
[6]: {Models.CategoryTree}
[7]: {Models.CategoryTree}
[8]: {Models.CategoryTree}
[9]: {Models.CategoryTree}
[10]: {Models.CategoryTree}
[11]: {Models.CategoryTree}
[12]: {Models.CategoryTree}
[13]: {Models.CategoryTree}
-
根据我的判断,我认为我走错了路。无论测试代码是否成功运行作为可测试性代码设计的核心,我提高了测试代码的复杂性,因此,我将隔离代码,并使其可测试。
-
感谢@Nkosi对此的评论