如何模拟$ window.height()?

时间:2015-04-10 16:02:10

标签: angularjs unit-testing jasmine karma-jasmine

我的指令包含$window.height()$window.scrollTop()。如何为$window.height()$window.scrollTop()创建模拟?只有这样,我才能为该指令编写测试。

1 个答案:

答案 0 :(得分:2)

您可以在$provide块中使用beforeEach来指定使用模拟$window对象代替$window

以下是使用模拟$window对象测试名为“myService”的角度服务的示例:

describe("thingToTest", function () {
    "use strict";

    var service,
        $window;

    beforeEach(module("myModule"));

    beforeEach(function () {
        $window = {
            height: function () { //do something },
            scrollTop: function () { //do something }
        };

        module(function ($provide) {
            $provide.value('$window', $window);
        });

        inject(function ($injector) {
            service = $injector.get('myService');
        });
    });

    describe("myTests", function () {
    //tests here
    });