Ich versuche, die Abfrageerweiterungsmethode, die auf eine nhibernate-3-Sitzung angewandt wird, nachzubilden oder ähnlich. Ähnlich wie die folgende...
public IQueryable<Entity> GetEntities
{
return entities = Session.Query<Entity>();
}
Die Erweiterungsmethode Query gibt eine IQueryable-Sammlung zurück.
Ich kann das Session-Objekt mit Moq oder Rhinos eindeutig ausspotten. Aber bis jetzt habe ich noch keinen geeigneten Weg gefunden, um die Erweiterungsmethode auszutricksen oder zu ersetzen. In der Tat Lesen Antworten auf mehrere Fragen auf Stack Overflow, kann es nicht möglich sein.
siehe Fragen Wie spottet man Erweiterungsmethoden mit Rhino Mock? Mocking von Erweiterungsmethoden mit Moq und Links innerhalb.
Ich bin auf die microsoft maulwürfe Projekt und dachte, dass ich damit vielleicht eine Ersatzbaugruppe erstellen könnte, mit der ich diese eine bestimmte Methode testen könnte. Mit Pex ist es relativ einfach, eine solche Baugruppe zu erstellen, aber wenn ich versuche, einen Weg zu finden, diese Baugruppe zu verwenden, ist es nicht sofort klar, wie man das herausrechnen kann.
Idealerweise möchte ich nur überprüfen, um sicherzustellen, dass die Abfrageerweiterung Methode von dieser Methode aufgerufen wird und ein Preempted Ergebnis zurückgegeben wird.
Hat jemand etwas Ähnliches getan, würde gerne die Meinung der anderen hören.
Ps. es gibt Typ Mock, aber ich habe nicht die Mittel, um es zu kaufen :)