In meinem Projekt haben wir ein Repository von Testdaten, die für Integrationstests verwendet wird. Dieses Repository wird dann verwendet, um eine Schein-Arbeitseinheit zu erstellen, auf die durch zu testende Methoden zugegriffen werden kann. Ich habe ein Problem beim Zugriff auf die Assert-Funktion.Zugriff auf private Mitglieder von Mocked-Objekt
Die Daten Ich mag würde innerhalb source
Ich suche Mitglieder in den Zugriff auf nicht-öffentliche Reflexion verwendet haben, statt behaupten aber die folgenden Renditen null
:
PropertyInfo pInfo = vms.GetType().GetProperty("SourceInterface", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
Ersetzen SourceInterface
mit source
gibt auch Null
Gibt es eine Möglichkeit, die SourceInterface
Objekte von source
abrufen?
EDIT: Testmethode:
[TestMethod]
public void GetAllVMS_VMSReturned()
{
IEnumerable<SourceInterface> vms = controller.GetAllVMS();
Assert.IsTrue(vms.ToList().Count > 0); //Throws NullReferenceException
}
Methode im Test:
public IEnumerable<SourceInterface> GetAllVMS()
{
return database.SourceInterfacesRepository.GetAll();
}
Ich werde meine Methode unter Test zusammen mit dem Testanruf zu – Novastorm
hinzufügen Basierend auf Codebeispiel 'vms' ist IEnumerable ... Es macht absolut keinen Sinn, einige benutzerdefinierte Methoden darauf zu erwarten. Wahrscheinlich schlechte Kopie-Paste - stellen Sie sicher, dass Sie [MCVE] zur Verfügung stellen, die plausibel aussieht. –
Es gibt wirklich nichts mehr zu der Frage hinzuzufügen; Die einzige andere Information, die ich möglicherweise liefern könnte, wäre die Einrichtung unserer Arbeitseinheit (in diesem Beispiel: Datenbank), die vor dem Test injiziert wurde. – Novastorm