2016-09-22 1 views
0
  1. Projekt: Web-Api
  2. Laufpfad: die TestExplorer öffnen und rechts auf das Element, das Sie testen möchten, und klicken Sie links debug ausgewählte Tests
  3. Problembeschreibung: Ich verfolgte den SQL-Server mit SQL Server Profiler, und der SQL Server erhielt die Anfrage und gab die Elemente zurück. aber das TDD-Projekt bekommt nichts. unter dem entsprechenden Code ist:

// 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(); 
} 

wenn ich api/CategoryTrees in IE-Explorer besuchen, kann ich die Angebote im unmittelbaren Fenster. und es gibt 14 Gegenstände. Aber wenn ich Testprojekt in vorher erwähnten Laufpfad lief, bekam ich nichts. Bitte helfen Sie mir, danke.Warum kann Microsoft.VisualStudio.TestTools.UnitTesting nicht bekommen die DbSet <T> aus der Datenbank zurück

//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 

// Code unten sofortige Fenster unter Besuch IE-Modus

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

überprüfen app.config kommentieren und stellen Sie sicher, dass Sie die richtige Verbindungszeichenfolge für die DbContext haben. – Nkosi

+0

@Nkosi Ich bin mir sicher, weil meine Datenbank den anfordernden T-sql erhalten hat –

Antwort

0
  • Nach meinem Ermessen codiert wurde, glaube ich, dass ich auf dem falschen Weg bin. unabhängig von der Test-Code erfolgreich ausgeführt oder nicht, das ist nicht die Kern der Testbarkeit Code-Design, hob ich meine Testcode Komplexität, so werde ich den Code isolieren, und es testbar machen.

  • Vielen @Nkosi für dieses

Verwandte Themen