2017-09-16 12 views
-3

関数がクラスの内部にあり、ユニットテストが関数を計算すると、私に何らかのエラーが発生します。どのように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); 
    }); 

})。

エラーが> 2つの数の正しい合計が

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 

●計算で> 2数の正しい減算が

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 

●計算>正しい減算され...

●計算であります2つの数字の合計は

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 

計算 ✕2数の正しい合計である(3MS) ✕2数の正確な減算は、(1ミリ秒)

テストスイート:1が失敗した、1つの合計 試験:2に失敗し、2合計 スナップショット:0合計 時間:0.818秒、推定1秒 すべてのテストスイートを実行します。 npm ERR!テストに失敗しました。詳細は上記を参照してください。

+0

●計算> 2数の正しい合計が TypeError例外です:オブジェクトで 未定義のプロパティ 『合計』を読み込めません。 doResolve(node_modules/promise/lib/core.js:200:13)の(__tests __/calculation.test.js:8:14) をtryCallTwo(node_modules/promise/lib/core.js:45:5) にします。 の新しいPromise(node_modules/promise/lib/core.js:66:3) のtryCallOne(node_modules/promise/lib/core.js:37:12) at node_modules/promise/lib/core.js:123 :15 ●計算> 2つの数値の正しい減算は –

+0

です。コマンドnpm testを実行すると、このようなエラーが発生します。上記のすべてのファイルが含まれます。 @ニコラスタワー。 –

+0

result.sum1とresult.sub1の変更後に同じエラーが発生しました。 @Nicholas Tower –

答えて

0

あなたは間違った質問をしていると思います。 テスト駆動開発は開発プロセスです。

あなたはTDDを使って何かをテストしないでください。

私はこれをお勧めしますexcellent article on TDD.私はそれが物事をクリアすると思います。

+0

ありがとう@bamse –

関連する問題