Ich bin neu in der Unit-Tests und es klingt für mich wie es sollte einfach sein, NSubstitute in der Lage sein, Null für eine Methode zurückgeben, aber ich kann es nicht zum Laufen bringen.NSubstitute, um eine Null für ein Objekt zurückzugeben
Ich habe schon versucht, diese für eine Get-Methode, die eine Kampagne Methode
_campaigns = Substitute.For<IOptions<Campaigns>>();
_campaigns.Get(Arg.Any<string>()).Returns(null);
In der Produktion zurückkehren sollte ich eine FirstOrDefault() Methode verwenden, um die Kampagne Objekt zurückzukehren und es gibt null zurück, wenn es nicht existiert. Also in meinem Gerät zu testen möchte ich diesen Fall testen, aber ich kann es mit NSubstitute nicht vortäuschen, wie ich die folgende Fehlermeldung beim Kompilieren:
error CS0121: The call is ambiguous between the following methods or properties: 'SubstituteExtensions.Returns(T, T, params T[])' and 'SubstituteExtensions.Returns(T, Func, params Func[])'
ich dies den Fehler zu vermeiden:
_campaigns.Get(Arg.Any<string>()).Returns((Campaign)null);
aber dann bekomme ich einen Fehler bei der Ausführung auf dieser Linie:
System.NullReferenceException : Object reference not set to an instance of an object.
Zweites Beispiel muss funktionieren, denke ich. Können Sie eine vollständige Zeile anzeigen, in der Sie 'NullReferenceException' erhalten - Sie verwenden den Rückgabewert irgendwie – Fabio