Ich entwickle ein ASP.NET MVC-Projekt. In meinem Projekt mache ich Unit Testing. Ich benutze Moq für Unit-Test. Aber ich habe ein Problem mit dem Testen einer Methode einer Modellklasse, die von einer anderen Funktion abhängig ist. Bitte sehen Sie mein Szenario unten. Wie die Funktionalität der Testklasse selbst mit Moq in ASP.NET MVC-Unit-Test zu verhöhnen
Dies ist die Stichprobe der Modellklasse, die ich
public class ItemRepo:IItemRepo
{
private DbContext context = new DbContext();
public IEnumerable<Item> GetItems()
{
return context.items;
}
public string GenerateItemCode()
{
Item item = this.GetItems.OrderByDescending(x=>x.Id).FirstOrDefault();
//do something
return itemCode;
}
}
ich GenerateItemCode wollen testen wollen Methode testen
[TestClass]
public class ItemRepoTests
{
[TestMethod]
public void GenerateItemCode_IncreaseDigit()
{
Item[] items = new Item[]{
new Item{
ItemCode = "DN999934"
}
};
ItemRepo itemRepo = new ItemRepo();
//I want to mock GetItems method here
}
}
bemerkte ich, was ich in Testcode verspotten wollen. Wie kann ich diese Methode verspotten? Wie kann ich die Abhängigkeitsfunktion dieser Methode testen?
Wie wird 'Elemente' in das Modell eingeführt . Wird es intern erstellt oder in die Klasse injiziert? – Nkosi
Der Code in der GetItems-Methode in dieser Frage ist ziemlich wichtig, bitte können Sie es hinzufügen, wie Sie uns zeigen, wie Sie Daten aus der Datenbank erhalten. Wenn Sie beispielsweise EF DbContext verwenden, können Sie vorschlagen, dass Sie einen Mock-DbContext injizieren, um Unit-Tests auszuführen. – uk2k05
GetItems Methode ist nur Rückkehr context.Items –