Gibt es eine Möglichkeit, anonyme Funktionsgleichheit mit [email protected]
zu testen?Testen der anonymen Funktionsgleichheit mit Jest
ich einen Test ähnlich zu passieren versuche:
const foo = i => j => {return i*j}
const bar =() => {baz:foo(2), boz:1}
describe('Test anonymous function equality',()=>{
it('+++ foo',() => {
const obj = foo(2)
expect(obj).toBe(foo(2))
});
it('+++ bar',() => {
const obj = bar()
expect(obj).toEqual({baz:foo(2), boz:1})
});
});
, die zur Zeit ergibt:
● >>>Test anonymous function equality › +++ foo
expect(received).toBe(expected)
Expected value to be (using ===):
[Function anonymous]
Received:
[Function anonymous]
Difference:
Compared values have no visual difference.
● >>>Test anonymous function equality › +++ bar
expect(received).toBe(expected)
Expected value to be (using ===):
{baz: [Function anonymous], boz:1}
Received:
{baz: [Function anonymous], boz:1}
Difference:
Compared values have no visual difference.
Dies ist eher ein Hack als eine Antwort. Sie können 'expect ('' + obj) .toEqual ('' + foo (2)) 'versuchen. Es vergleicht den Inhalt der Funktionskette und nicht die Funktion selbst. – Malice
@Malice das ist nicht schlecht, obwohl der zweite Test näher an meinem Anwendungsfall ist, wo ich die Anon Fn einer Eigenschaft in dem Objekt, das ich vergleichen möchte, zugewiesen haben. Ihre Methode könnte als die eingebaute Methode der Wahl innerhalb '.toEqual' für die Überprüfung dieser Art von Gleichheit arbeiten – bitstrider
... aber unglücklicherweise ist die Gleichheit nicht ganz genau, wie" "+ foo (1) ===" + foo (2) 'ergibt sich als wahr – bitstrider