Ich glaube es heist Weakmatching, Ich möchte das Parameter nur teilweise Matchen.
Ich habe eine Klasse die als Identifier einen Guid erstellt.
Guid ProcessArguments.Identifier;
Diese Klasse hat auch noch eine zweite Property
List<string> ProcessArguments.Strings
In meiner TestKlasse bereichte ich eine Instance auf um sie der Method Setup des Moq frameworks
ProcessArgument arg = new ProcessArgument();
// der Identifier wird im ctor zugewiesen (eine Guid erstellt)
arg.Strings.Add("test");
Die Methode die ich testen möchte erstellt ebenfalls ein ProcessArgument,
klarerweise mit einer anderen Guid.
Wie kann ich nun das Moq framework aufsetzten dass nur die Gleichheit der Property Strings überprüft wird?
Ich verbringe leider schon realtive viel Zeit damit, wäre net wenn Ihr mir dabei helfen könntet!?
mbg
Robert Rossegger
Noch ein bisschen Code, zum zeigen was ich habe, aber leider nicht funktioniert.
mTestClassMock.Setup(mock => mock.MethodToTest(It.Is<ProcessArgument>(argument => EqualsProcessArgument(argument, processModificationEventArgs))
)).Returns(bla));
private static bool EqualsProcessArgument(ProcessArgument processModificationArgument, ProcessArgument processModificationArgumento)
{
// wird nie aufgerufen!
return true;
}
http://code.google.com/p/moq/wiki/QuickStart
diese seite sah für mich am richtigsten aus, allerdings habe ich nicht mal annähernd das gleiche Verhalten.
Moq Version:
4.0.10827.0
// Edit Fehler behoben, danke fürs genaue lesen