Ich radiere oft, dass man Mocks vermeiden und Stubs bevorzugen sollte.Warum sollte ich Stubs über Mocks bevorzugen?
Die Isolation Frameworks wie FakeItEasy und NSubstitute machen es die meiste Zeit wirklich einfach, eine Abhängigkeit zu verspotten oder zu stubben. Diese Frameworks selbst unterscheiden nicht zwischen Stubs oder Mocks, sondern nennen sie insgesamt Fakes oder Substitutes. So weit ich in den frühen Tagen von "Mocking" weiß, war es sehr schwierig, Mock-Objekte zu erstellen, weil ich den umständlichen Record and Replay-Mechanismus nutze. Aber heute scheint es keinen großen Unterschied mehr zu geben.
Also warum sollte ich Stubs über Mocks bevorzugen? Warum sind Mocks brüchiger als Stubs?
Vielen Dank für Ihre Antwort. Vielleicht hätte ich eine andere Frage stellen sollen. Warum verursachen Mocks mehr Schaden als Stubs oder warum sind Mocks spröder als Stubs? – Rookian
Ich würde eine bessere Antwort von jemandem mit 100K + rep erwarten. Zum Beispiel könnten Sie die Konzepte eines "Stub" und eines "Mocks" in Ihren eigenen Worten definieren (Link-Antworten, wie Sie wissen, werden nicht empfohlen).Das größte Problem bei dieser Antwort ist jedoch, dass es auf einer fehlerhaften "Schein" -Definition aus einem "alten" (2007) Buch basiert, was im Widerspruch zu dem steht, was die tatsächlichen spöttischen Bibliotheken bieten. Dh es besteht eine Diskrepanz zwischen Theorie und Praxis. –
@Rookian Ich denke, die Prämisse für die Frage ist ein bisschen fehlerhaft. Wie Gerard Meszaros in seinem alten (scheinbar nutzlosen) Buch erklärt, erzeugen Befehle * indirekte Ausgabe * anstelle der * direkten Ausgabe *, die durch Abfragen erzeugt wird. Sie können die indirekte Ausgabe oft in eine direkte Ausgabe umwandeln und umgekehrt, so dass sie tatsächlich äquivalent sind. Wenn ich spekulieren muss, Leute mögen Mocks nicht, weil sie dazu neigen, die Mocks zu sehr miteinander interagieren zu lassen, aber das ist eher ein Problem im Zusammenhang mit "zu viel" auf einmal, als ein Problem mit Mocks selbst ... –