Прежде всего, этот код работает. Тем не менее, я еще не видел, чтобы кто-то делал это, поэтому мне интересно, насколько это даже законно, и если я пропущу непредвиденные недостатки.Транспортир Жасмин описывает блоки, вложенные в его блок
Контекст в том, что я пишу E2E-тест с помощью Protractor, который использует Jasmine-style describe/it blocks. Моя цель - загрузить страницу и запустить кучу it
блоков тестов без перезагрузки этой страницы каждый раз (потому что это требует много времени).
Конструкция у меня есть:
describe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //loads the page
});
it('elements', function() {
describe('test group', function() {
it('test 1', function() {
//run stuff 1
});
it('test2', function() {
//run stuff 2
});
})
});
});
Я понимаю, что альтернатива просто сделать это:
describe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //goes to homepage
});
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
Но проблема в том, что я не могу отделить тесты и вы в конечном итоге с большим блоком it
. Я хочу как-то избежать проблемы с запуском beforeEach каждый раз, но все же быть в состоянии иметь красиво отделенные тестовые блоки.
Кстати, я также попытался это:
describe("Homepage", function() {
browser.get("/"); //goes to homepage
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
кроме этого не работает, если у вас есть несколько спецификаций, как это. Браузер.get() запускается один за другим до запуска тестов.
Это хорошая идея. Позвольте мне подождать день или два, прежде чем принять, чтобы увидеть, есть ли у кого-нибудь идеи. – wlingke
Я хотел также добавить для этого конкретного сценария 'browser.get()' вы также можете проверить страницу, на которой вы находитесь, на 'browser.getCurrentUrl()' и проверить текущую страницу перед тем, как «получить» ее. – wlingke