如何使用TDD单元测试此功能?

问题描述:

当函数在类和单元测试函数计算它给我一些错误。如何使用TDD测试计算函数?请帮帮我。如何使用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); 
    }); 

});

错误是...

●计算>两个号码是否正确总和

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 

●计算>两个数相减正确是

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 

●计算>正确的减法的两个数字是

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 

计算 ✕两个数目正确和是(3毫秒) ✕两个数正确减为(1毫秒)

测试套件:1失败,1个总 测试:2失败,2总 快照:0总 时间:0.818s,估计1s 跑完所有测试套件。 npm ERR!测试失败。参见上面的更多细节。

+0

●计算>两个号码是否正确总和 类型错误:在对象不能读取的不确定 财产‘总和’。在doResolve(node_modules/promise/lib/core.js:200:13)处,在tryCallTwo(node_modules/promise/lib/core.js:45:5) 处运行(__tests__/calculation.test.js:8:14) (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 ●计算>正确减去两个数字是 –

+0

运行命令npm test然后给出这样的错误。我将包括上面的所有文件。 @尼古拉斯塔。 –

+0

更改result.sum1和result.sub1后,此处出现同样的错误。 @尼古拉斯塔 –

我认为你问的是错误的问题。 测试驱动开发是一个开发过程。

你不用TDD测试某些东西,你可以使用它来构建一些东西。

我推荐这个excellent article on TDD.我认为它会清除一切。

+0

谢谢@bamse –