2017-03-18 11 views
0

実際の関数で返されないテストで、テスト目的の値/戻り値をテストするにはどうすればよいですか?ジャスミン - テスト中に実際の関数によって返されない値をテストする方法は?

function testing(one,two,three){ 
     var result; 
     var add=one+two; 
     var subtr=three-two; 
     result=one+add+subtr; 
     return result; 
    } 
    testing(5,10,4) 

私は結果をテストしたいならば、私はこれを行うだろう:

  describe("calculate numbers", function() { 
       it("result should add all three arguments", function() { 
       var final = testing(5,10,4); 
       expect(final).toEqual(14); 
       }); 
      }) 

が、どのように私は私の機能に返さないもののためにテストすることができますか?例えば、「追加」や「微妙な」テストを行うにはどうすればいいですか?追加のためには15を返します。実際の関数では返されないテスト中に他の値を返すことはできますか?

答えて

0

プログラミング言語に関係なく単体テストが難しい場合は、コードのアーキテクチャに臭いがある可能性があります。まず簡単なテストコード(TDD)を使いたい場合は、まずテストを書いてください。

簡単な解決策は、関数をいくつかの小さな関数に分割し、それらを別々にテストすることです。この方法で、あなたはSingle Responsibility Principle(SRP)に違反していません。

しかし、関数内のロジックが些細で、最終結果のみを気にしている場合は、最終結果のみをテストします。つまり、コードが返すべき結果ではなく戻り値をテストします。

実生活では、関数を小さなものに分割してデータサービスでラップし、データサービスをユニットテストする傾向があります。

関連する問題