プライベートメソッド Jasmine による単体テスト 質問する

プライベートメソッド Jasmine による単体テスト 質問する

私は Jasmine を使用して Angular アプリケーションのテスト ケースをコーディングしていました。しかし、多くの内部メソッドがサービス内でプライベートとして宣言されています。

例:

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

Jasmine を使用すると、「doOfferCal」のコード テストが簡単になりますが、myPrivate のユニット テストも記述したいと思います。

どうすればいいですか?

前もって感謝します。

ベストアンサー1

jabko87さん、ありがとう。

さらに、引数を渡す場合は、以下の例を使用します。

const myPrivateSpy = spyOn<any>(service, 'transformNative').and.callThrough();
 myPrivateSpy.call(service, {name: 'PR'});

注: ここで、service はクラス、transformNative はプライベートメソッド、{name: 'PR'} はオブジェクト引数を渡します。

おすすめ記事