2017-09-16 3 views
-3

Lorsque la fonction est à l'intérieur de la classe et l'unité de test de la fonction calculer, il me donne une erreur. Comment tester la fonction de calcul en utilisant TDD? Aidez-moi, s'il vous plaît.Comment tester cette fonction à l'aide de TDD?

1.calculation.js

export default class calculation { 
    static calculate(a, b) { 
     var sum1 = this.addition(a, b); 
     var sub1 = this.subtract(a, b); 
     return { 
      sum1: sum1, 
      sub1: sub1 
     }; 
    } 
    static addition (a, b) { 
     var sum = a + b; 
     return sum; 
    } 
    static subtract (a, b) { 
     var sub = a - b; 
     return sub; 
    } 
} 

2.calculation.test.js

const calculate = require('../app/calculation'); 
describe('calculation',() => { 
    let result; 
    beforeEach(() => { 
     result = calculate.calculate(100, 50); 
    }); 
    it('correct sum of two number is',() => { 
     expect(result.sum1).toBe(150); 
    }); 
    it('correct subtract of two number is',() => { 
     expect(result.sub1).toBe(50); 
    }); 

});

erreur ...

● calcul> somme correcte de deux nombres est

TypeError: Cannot read property 'sum1' of undefined 

    at Object.<anonymous> (__tests__/calculation.test.js:8:14) 
    at tryCallTwo (node_modules/promise/lib/core.js:45:5) 
    at doResolve (node_modules/promise/lib/core.js:200:13) 
    at new Promise (node_modules/promise/lib/core.js:66:3) 
    at tryCallOne (node_modules/promise/lib/core.js:37:12) 
    at node_modules/promise/lib/core.js:123:15 

● calcul> correct soustraction de deux nombres est

TypeError: calculate.calculate is not a function 

    at Object.<anonymous> (__tests__/calculation.test.js:5:18) 
    at tryCallTwo (node_modules/promise/lib/core.js:45:5) 
    at doResolve (node_modules/promise/lib/core.js:200:13) 
    at new Promise (node_modules/promise/lib/core.js:66:3) 
    at tryCallOne (node_modules/promise/lib/core.js:37:12) 
    at node_modules/promise/lib/core.js:123:15 

calcul de ●> correct soustraction de deux chiffres est

TypeError: Cannot read property 'sub1' of undefined 

    at Object.<anonymous> (__tests__/calculation.test.js:11:14) 
    at tryCallTwo (node_modules/promise/lib/core.js:45:5) 
    at doResolve (node_modules/promise/lib/core.js:200:13) 
    at new Promise (node_modules/promise/lib/core.js:66:3) 
    at tryCallOne (node_modules/promise/lib/core.js:37:12) 
    at node_modules/promise/lib/core.js:123:15 

calcul ✕ somme correcte de deux nombres est (3ms) ✕ soustraction correcte des deux nombres est (1ms)

des suites de tests: 1 a échoué, total 1 Tests: 2 a échoué, au total 2 instantanés: 0 Total Durée: 0.818s, estimation 1s Ran toutes les suites de tests. npm ERR! Test échoué. Voir ci-dessus pour plus de détails.

+0

calcul ●> somme correcte de deux nombres est TypeError: Impossible de lire la propriété « somme » undefined à l'objet. (__tests __/calculation.test.js: 8: 14) à tryCallTwo (node_modules/prom/lib/core.js: 45: 5) à doResolve (node_modules/promise/lib/core.js: 200: 13) à la nouvelle promesse (node_modules/promise/lib/core.js: 66: 3) à tryCallOne (nodules_modules/promesse/lib/core.js: 37: 12) à node_modules/promise/lib/core.js: 123 : 15 ● calcul> soustraction correcte de deux nombre est –

+0

exécuter le test npm de commande puis il donner une telle erreur. Je vais inclure tous les fichiers ci-dessus. @ Nicholas Tower. –

+0

même erreur ici après le résultat result.sum1 et result.sub1. @Nicholas Tower –

Répondre

0

Je pense que vous posez la mauvaise question. Le développement piloté par les tests est un processus de développement.

Vous ne testez pas quelque chose avec TDD, votre build l'utilise.

Je le recommande excellent article on TDD. Je pense que ça éclaircira les choses.

+0

merci @bamse –