Und hier ist, was ich testen möchte:
%Vor% AddCustomers
Test besteht.
AddCustomersAsync
test schlägt fehl, ich erhalte immer eine NullReferenceException nach dem Aufruf von await DbContext.SaveChangesAsync()
.
um MasonOgCRM.DataAccess.EF.EntityFrameworkRepository.d__2.MoveNext () im C: \ Benutzer \ Mason \ Desktop \ Repositories \ masonogcrm \ src \ DataAccess.EFrepository \ EntityFrameworkRepository.cs: Zeile 43
Ich kann in meinem Code nichts sehen, was null ist. DbContext
ist nicht null. Der äquivalente Test von AddCustomers
, der identisch mit der Ausnahme ist, dass er nicht asynchron ist, wird wie erwartet ausgeführt. Ich vermute, ich habe keine korrekte Konfiguration von SaveChangesAsync
in SetupDBContext()
durchgeführt, aber ich weiß nicht, was ich tun soll, um es zu beheben.
Sie haben Recht, das Problem tritt auf, weil eine Ihrer Einstellungen nicht korrekt ist: dbContext.Setup(c => c.SaveChangesAsync()).Verifiable();
.
Die Methode gibt eine Task
zurück und Sie haben vergessen, eine Task
zurückzugeben, daher null
returns.
Sie können dbContext.Setup(c => c.SaveChangesAsync()).Verifiable();
oder entfernen
Ändere das Setup in etwa wie folgt:
Tags und Links c# entity-framework unit-testing async-await moq