1

サーバーへのコードの保存を処理するメソッドを持つ Angular ファクトリを作成しました。ファクトリ メソッドの 1 つに、実際の呼び出しを行うメソッドを持つサード パーティ オブジェクトが含まれています。このコードをテストしたいのですが、サードパーティ オブジェクトをモックする方法がわかりません。

ジャスミンテストでプランカーをセットアップしました。

このテストの目的は、ThirdPartySavingUtils オブジェクトではなく、モック オブジェクトを使用するコードを正常に取得することです。それは可能ですか?

var app = angular.module("MyApp", []);

app.factory("SavingUtils", function() {

  return {

    saveStuff: function() {
      if(typeof ThirdPartySavingUtils !== "undefined") {
        return ThirdPartySavingUtils.value;
      }
    }
  };
});

これは私のジャスミンテストです

describe("Mocking Test", function() {

  var ThirdPartySavingUtilsMock;
  var SavingUtils;

  beforeEach(function() {

    angular.mock.module("MyApp", function($provide) {

      ThirdPartySavingUtilsMock = {
        value: "I am the mock object"
      };

      $provide.value("ThirdPartySavingUtils", ThirdPartySavingUtilsMock);
    });

    inject(function(_SavingUtils_) {
      SavingUtils = _SavingUtils_;
    });
  });

  it("should run without throwing an exception", function() {

    expect(true).toBe(true);
  });

  it("should mock out ThirdPartySavingUtils with ThirdPartySavingUtilsMock", function() {

    var result = SavingUtils.saveStuff();

    expect(result).toEqual("I am the mock object");
  });
});
4

1 に答える 1