Пиша тестове от край до край за моето приложение, базирано на AngularJS, използвайки Protractor. Някои случаи изискват използване на фалшификати за тестване - например проблем с мрежовата връзка. Ако AJAX заявка към сървъра е неуспешна, потребителят трябва да види предупредително съобщение.
Моите мокове са регистрирани в приложението като услуги. Искам те да бъдат достъпни за тестовете, за да напишат нещо подобно:
var proxy;
beforeEach(function() { proxy = getProxyMock(); });
it("When network is OK, request succeeds", function(done) {
proxy.networkAvailable = true;
element(by.id('loginButton')).click().then(function() {
expect(element(by.id('error')).count()).toEqual(0);
done();
});
});
it("When network is faulty, message is displayed", function(done) {
proxy.networkAvailable = false;
element(by.id('loginButton')).click().then(function() {
expect(element(by.id('error')).count()).toEqual(1);
done();
});
});
Как да внедря функцията getProxyMock
за предаване на обект от приложението към теста? Мога да съхранявам проксита в обекта window
на приложението, но все още не знам как да осъществя достъп до него.