it-swarm.com.de

Was sind NSubstitute-Einschränkungen, insbesondere gegenüber MOQ?

Ich werde gerade eine Entscheidung über die spöttische Bibliothek für mein nächstes Projekt treffen.

und weil ich neu in diesen Bibliotheken bin, habe ich eine schnelle Suche gemacht

Ich fand, dass MOQ viel populärer ist als NSubstitute und ich erwarte mehr Hilfe von der Community, besonders hier bei SO

Aber mir hat NSubstitute Syntax mehr gefallen, es hat auch ein Nice docs .

Meine Frage ist also "Gibt es etwas, was ich mit MOQ erreichen kann? Ich kann nicht mit NSubstitute erreichen?"

20
George Botros

Mir ist keine Einschränkung des Substituenten bekannt

Vor einigen Jahren war ich ein Kenner von Moq, und jetzt habe ich eine Vorliebe für N-Substitute. Ich mag die Syntax (Sie rufen direkt die Methode vs Setup auf.), Ich denke, NSubstitute hat die beste Syntax und ist das lesbarste aller Frameworks (dies ist jedoch eine subjektive Assertion ^^).

Oh vielleicht eines: NSubstitute hat keinen strengen Mock-Modus (aber ich dachte immer, es wäre eine schlechte Idee, daher habe ich es nie als Einschränkung gesehen)

30
rad

Ich habe festgestellt, dass beim Versuch, einen Aufruf einer Methode in NSubstitute mit .Do () zu simulieren, die Parameter nur als Array von Objekten verwendet werden können. In Moq können Sie die Anzahl, Typen und Namen von Parametern erzwingen.

Zum Beispiel:

  • NSubstitut: .Do (param => neues ExObject {s = (Zeichenfolge) param [0], i = (int) param [1]})
  • Moq: .Callback <string, int> ((text, nb) => neues ExObject {s = text, i = nb}

Ich fand es einfacher in Moq zu verstehen, da man die Parameter leichter lesen kann, als zu zählen, welcher der Parameter ist.

1
Cosmin