2016-09-22 58 views
0
  1. 項目返回:網絡API
  2. 運行路徑:打開TestExplorer,然後右鍵單擊要測試的項目,然後左鍵點擊調試選定的測試
  3. 問題描述:我用sql server profiler跟蹤了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(); 
} 

當我訪問API/CategoryTrees在IE瀏覽器,我可以在即時窗口中的項目。有14個項目。 但是當我在前面提到的運行路徑中運行測試項目時,我什麼都沒有。 請幫助我,謝謝。爲什麼不能Microsoft.VisualStudio.TestTools.UnitTesting得到DbSet <T>從數據庫

//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} 
+0

檢查的app.config並確保您具有的DbContext正確的連接字符串。 – Nkosi

+0

@Nkosi我很確定,導致我的數據庫收到請求的T-sql –

回答

0
  • 編碼即時窗口根據我的判斷,我覺得我是在錯誤的道路。 無論測試代碼是否成功運行,那不是 核心的可測試性代碼設計,我提出了我的測試代碼複雜度,因此我將隔離代碼並使其可測試。

  • 感謝@Nkosi的評論此

相關問題