ich zwei Unit-Tests haben, die TypeMock Isolator verwenden zu isolieren und zu fälschen Methode von SqlMembershipProvider der asp.net.TypeMock Trenner: WillThrow() blutet über Unit-Test-Grenzen?
In Test 1 habe ich:
Isolate.WhenCalled(
() =>
Membership.CreateUser(...)))
.WithExactArguments()
.WillThrow(new Exception());
In Test 2 habe ich:
Isolate.WhenCalled(
() =>
Membership.CreateUser(...)))
.WithExactArguments()
.WillReturn(new MembershipUser(...));
Wenn ich jeden Test von selbst laufen sie beide erfolgreich passieren.
Wenn ich beide Tests laufen, Prüfnummer 1 läuft zuerst und übergibt, dann Prüfnummer 2 läuft und schlägt mit den in Test geworfen Ausnahme 1.
Warum sollte der WillThrow()
Anweisung in Test 1 „bluten über“ zu Test 2? Schließlich definiert Test 2 explizit unterschiedliches Verhalten - WillReturn()
?
Sie haben keine vollständige Schnipsel enthalten, so dass ich die offensichtliche Frage stellen ... Haben die Tests/Klasse mit dem 'Isolated' Attribut markiert worden ist, oder Sie rufen' Isolator.Cleanup' das Verhalten zurücksetzen ? http://www.typemock.com/rule-missing-isolated-attribut – forsvarir
@forsvarir Danke. Das Hinzufügen des '[Isolated]' 'Attributs behob das Problem. Möchten Sie dies als Antwort posten, damit ich es akzeptieren kann? – urig