Wie kann ich mit dem Sinon-Paket einen Methodenaufruf stub/mock machen, bei dem einer der Parameter, die ich mocken muss, mit einer Pfeilfunktion aufgerufen wird? ZBVerspotten einer Methode, die mit einer Pfeilfunktion als Parameter aufgerufen wird
let objWithMethod = { method : function(x) {}; };
function SUT() {
// use case
let x = 'some value';
let y = { anotherMethod : function(func) {}; };
// I want to test that `y.anotherMethod()` is called with
// `(x) => objWithMethod.method(x)` as the argument
y.anotherMethod((x) => objWithMethod.method(x));
}
let mockObj = sinon.mock(objWithMethod);
// Both of these fail with a "never called" error
mockObj.expects('method').once().withArgs(objWithMethod.method.bind(this, x));
mockObj.expects('method').once().withArgs((x) => objWithMethod.method(x));
SUT();
mockObj.verify();
Ich konnte nichts in den Sinon-Dokumenten noch nach ein paar Versuchen bei einer Google-Suche finden.
Sie greifen nicht auf "objWithMethod.method" in Ihrem Code zu. 'objWithMethod' ist ein Objekt, während Sie es als Funktion bezeichnen. Wie funktioniert es überhaupt? – zerkms
Ihr Code verursacht 'VM604: 5 Uncaught TypeError: objWithMethod ist keine Funktion' (nachdem Sie ein Problem mit zusätzlichen'; 'in der ersten Zeile) – zerkms
haben Sie Recht mein Beispiel ist nicht korrekt, was ich im Frage ich werde aktualisieren es – Derek