我的指令包含$window.height()
和$window.scrollTop()
。如何为$window.height()
和$window.scrollTop()
创建模拟?只有这样,我才能为该指令编写测试。
答案 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
});