Existe-t-il un moyen de tester l'égalité des fonctions anonymes avec [email protected]
?Test de l'égalité des fonctions anonymes avec Jest
Je suis en train de passer un test similaire à:
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})
});
});
qui produit actuellement:
● >>>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.
C'est un hack plutôt qu'une réponse. Vous pouvez essayer 'expect ('' + obj) .toEqual ('' + foo (2))'. Il compare le contenu de la chaîne de fonctions plutôt que la fonction elle-même. – Malice
@Malice ce n'est pas mauvais, même si le second test est plus proche de mon cas d'utilisation, où j'ai assigné l'anon fn à une propriété dans l'objet que je veux comparer. Votre méthode pourrait fonctionner comme la méthode de choix intégrée dans '.toEqual' pour vérifier ce type d'égalité – bitstrider
... mais malheureuse l'égalité n'est pas tout à fait exacte, comme' '' + foo (1) === '' + foo (2) 'évalue à vrai – bitstrider