我有一个服务Home并在其中,我有selectInterval函数,如下所示:
Home.selectInterval = function () {
var interval = $interval(function () {
if (angular.element('.ui-select-toggle').length > 0) {
angular.element('.ui-select-toggle').bind('click', function () {
if (angular.element('.ui-select-choices-row').length > 0) {
angular.element('.ui-select-choices-group').mCustomScrollbar();
}
});
$interval.cancel(interval);
}
}, 50);
};
现在我正在测试它:
it('selectInterval() should be called.', function () {
Home.selectInterval();
$interval.flush(50);
$rootScope.$apply();
expect(Home.selectInterval).toHaveBeenCalled();
// need to test $interval as well
});
我想测试是否调用了函数,并且$ interval工作正常。现在它给了我这个错误。
Some of your tests did a full page reload!
答案 0 :(得分:1)
我不确定此测试是否是导致您的问题的原因。每当我看到该错误时,都是因为有一些代码正在更改URL。设置$window.location.href
或$location.path('/new-path')
之类的东西会导致phantomjs浏览器执行页面重新加载,而现在没有任何支持可以处理。
如果您发现这是问题所在,您只需要尝试窥探方法,它就永远不会实际调用它。这特别适用于$location.path('/new-path')