サーバーへのコードの保存を処理するメソッドを持つ 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");
});
});