У меня есть конструктор объекта js, который выглядит следующим образом:
function SomeThing(window, document) {
var self = this;
self.window = window;
self.document = document;
if (!self.window.sessionStorage.getItem('page-reloaded')) {
self.window.sessionStorage.setItem('page-reloaded', true);
self.window.location.reload(true); // PROBLEM ON THIS LINE
return;
}
}
мой пробный тест выглядит так:
beforeEach(function() {
mockWindowObj = {
'location': {
'href': '',
'search': '?hello=world',
'pathname': '/some/path',
'replace': function () {},
'reload': jasmine.createSpy()
}
};
spyOn(mockWindowObj.location, 'reload').and.callFake(function(){}); ;
some = new SomeThing(mockWindowObj, mockDocumentObj);
});
Когда я запускаю тест, я получаю эту ошибку:
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
{
"message": "Some of your tests did a full page reload!",
"str": "Some of your tests did a full page reload!"
}
Если я закомментирую строку window.location.reload(true)
, все мои тесты пройдут нормально и пройдут успешно. Я новичок в модульных тестах, и я не уверен, как обойти это. Любая помощь будет очень высоко ценится. Заранее спасибо.