Ich verwende Jest, und ich habe einige Komponenten wie:Gibt es beim Testen einer React-Komponente eine Möglichkeit, die Nichtlebenszyklusmethoden direkt aufzurufen?
var TestClass = react.createClass({
foo: function() {
return "test";
},
render: function() {
return <div />;
}
});
Und ich möchte eine Einheit Test speziell für TestClass
'foo
Methode schreiben. Ich
sah, dass Call a React component method from outside vorgeschlagen dies möglich sein sollte - einfach die Komponente im Test machen und es nennen:
describe("TestClass", function() {
it("should access internal methods", function() {
var test = <TestClass />
expect(test.foo()).toBeTruthy()
}
});
Von dieser Antwort auf die Frage würde ich diesen Test erwarten, passieren, sondern:
test.foo ist keine Funktion
Habe ich diese Antwort falsch verstanden?
Im Allgemeinen würde ich es vorziehen, nicht-Lebenszyklus-Methoden auf diese Weise zu testen - es würde eine bessere Granularität geben, aber wenn dies nicht möglich ist, gibt es eine vernünftige Alternative?
Zum Beispiel, wie könnte man eine Methode testen, die als Requisite an das Kind einer Komponente ohne diese Fähigkeit weitergegeben wird?
Ich würde vermuten, dass die Variable 'test' in Ihrem Test keine Instanz der Klasse ist, sondern nur die gerenderte Komponente (oder was auch immer' .renderIntoDocument' zurückgibt). –
Das ist, was ich bekomme, um ein künstliches Beispiel für Stack-Überlauf zusammen zu schlagen! Will bearbeiten – ttrmw
'expect (TestClass.prototype.foo()). ToBeTrothy();' –