2015-10-20 2 views
1

Я пытаюсь использовать транспортир, чтобы делать тесты e2e для одной из наших страниц. Страницы запускаются в iframe окружающей системы.afterEever случается перед этим

Для того, чтобы проверить мою страницу, я должен сделать все, что угодно, прежде чем «это (« Обзор открыт ... »). Я не говорю, что я должен делать это так, как я это сделал. это лучший способ, пожалуйста, скажите мне.

Теперь моя проблема заключается в том, что «errandClose выполняется до испытания в„Обзоре открыто“. ли я сделал что-то неправильно или неправильно хау транспортир работы.

describe('toplevel test', function() { 
    var login = new loginPage(); 
    var role = new roleSelectionPage(); 
    var errand = new overViewAndErrand(login.getBaseUrl()); 

    beforeEach(function() { 
     login.getPage(); //Goes to login page and logs in 
    }); 

    it('should log in', function() { 

     expect(element(by.model("therole")).isDisplayed()); 

     describe('Select role', function() { 

      beforeEach(function() { 
       role.selectRole(); //Selects role on page after login and ends up at next page 
      }); 


      it('Role selected', function() { 
       expect(element(by.css('a[href*="/OverviewNext"]')) !== undefined); 

       describe('Open overview', function() { 
        beforeAll(function() { 
         errand.open('name of errand'); //Selects errand and clicks on button, iframe i opened 
        }); 

        afterEach(function() { 
         errand.close(); // Leaves the iframe and clicks on remove errand 
        }); 

        it ('Overview opened', function() { 

         describe('Test form', function() { 
          browser.sleep(5000); 
          it ('test', function() { 
           browser.sleep(500); 
           element(by.model("modelvalue")).sendKeys('Ture Trana').then(function() {console.log('Ture Trana')});                
          }); 
         }); 
        }); 
       }); 
      }); 
     }); 
    }); 
}); 

В ответ на плоский вопрос.

Как я ульд хотел, чтобы иметь возможность запускать мои тесты что-то вроде этого

login.getPage(); 

role.select('role1'); 

errand.create(); 

begin 
    test 1 
    ... 
    test n 
end 

errand.save(); 

role.select(role 2); 

errand.open(previous errand); 

begin 
    test 1 
    ... 
    test n 
end 

login.logout(); 

Где все selectRole, createErrand, openErrand включает собирается по крайней мере, одну страницу и нажав на несколько кнопок и выбора в списках.

+0

Плоский обычно лучше и легче, чем вложенный. Вам действительно нужно гнездиться и многое описать? – alecxe

+0

Честно говоря, я не знаю. – TheBurnMill

ответ

0

Вы не должны вставлять в него().

Перед тем, как начать новый тест, вы должны закрыть этот тест. Пример: это должно быть закрыто перед началом нового описания.

it('Role selected', function() { 
      expect(element(by.css('a[href*="/OverviewNext"]')) !== undefined); 
+0

Он превратился в эту вложенную вещь, так как моя первая версия не работала вообще. Это почти работает. См. Добавленный псевдо-код ниже моего первого кода. Части входа и роли - это не то, что мне нужно проверить. Эта часть должна выполняться теми, кто создает окружающую систему. Но чтобы попасть на «мою» страницу, все эти части должны быть сделаны. – TheBurnMill

0

Вот пример с вложенными описаниями, который работает для меня.

 

    describe('overview page',() => { 
     let hostUrl = configMock[0].response.data.URL; 

     beforeAll(() => { 
     //do magic 
     }); 

     describe('all statement cards',() => { 
     beforeAll(() => { 
      browser.get(`${hostUrl}/z/y/1/g`); 
      browser.waitForAngular(); 
     }); 

     describe('Campaign overview',() => { 
      beforeEach(() => { 
      //before each magic 
      }); 
      it('has correct data for Delivered',() => { 
      expect(delivered.getText()).toEqual('1.6k'); 
      }); 
     }); 
     }); 
    }); 

Начиная с этого, я думаю, вы можете приспособить его к вашим потребностям.

+0

После того, как я снова начал играть (написание?), У меня есть плоская версия, которая, похоже, работает. Теперь все, что мне нужно сделать, это сделать все необходимые тесты. Тэнкс все за то, что повернул голову в правильном направлении. – TheBurnMill

+0

, вы также можете иметь вложенные структуры, но вам нужно будет уделять самое пристальное внимание тому, что вы хотите сделать, особенно если вы хотите играть с ними до/после крючков внутри вложенных групп;) –

Смежные вопросы