25

ジャスミンを使用して角度のあるアプリケーションのテストケースをコーディングしていました。ただし、多くの内部メソッドは、サービスでプライベートとして宣言されています。

例:

App.service('productDisplay', function(){
    var myPrivate = function(){
        //do sth
    }
    this.doOfferCal = function(product, date){
        //call myPrivate
        //do sth too
        return offer;
    }
});

ジャスミンを使用すると、「doOfferCal」のテストを簡単にコーディングできますが、myPrivate の単体テストも書きたいと思います。

どうすればいいですか?

前もって感謝します。

4

5 に答える 5

10

プライベート メソッドをテストしたい特定の理由はありますか?

をテストすることで、それが正しいことをdoOfferCal()暗黙のうちにテストしています。myPrivate()

これは RailsConf のためのものですが、Sandi Metz は何をテストすべきかについて非常に良い話をしています。

于 2013-07-26T16:03:46.340 に答える
2

内部関数をテストするには、内部関数を呼び出す外部関数を呼び出し、内部関数が必要とする内容に応じて入力を変化させます。したがって、あなたのケースでは、必要productDisplayに応じて入力を呼び出して変更しmyPrivate、期待される出力があることを確認します。またはを使用して、そのように物事をスパイしmyPrivateてテストすることもできます。.havebeencalledwith.andcallthrough

于 2013-07-26T16:00:37.120 に答える