Angular アプリの 2 つの別々のページで分度器テストを実行したいと思います:/dashboardと/articles.
複雑なのは、アプリに手動でログインする必要があることです。
現在、私はこのセットアップを持っています:
var LoginPage = function() {
ptor = protractor.getInstance();
this.login = function(url) {
ptor.get(url);
ptor.findElement(protractor.By.model('email')).sendKeys(config.LOGIN_EMAIL);
ptor.findElement(protractor.By.model('password')).sendKeys(config.LOGIN_PASS);
ptor.findElement(protractor.By.tagName('button')).click();
};
};
describe('The dashboard', function() {
console.log('logging in');
var loginPage = new LoginPage();
loginPage.login(config.DASHBOARD_URL);
console.log('logged in');
it('has a heading', function() {
console.log('testing dashboard 1');
heading = ptor.findElement(protractor.By.tagName('h1'));
expect(heading.getText()).toEqual(config.DASHBOARD_HEADING);
});
});
describe('The article widget', function() {
console.log('logging in');
var loginPage = new LoginPage();
loginPage.login(config.ARTICLE_URL);
console.log('logged in');
it('has a heading', function() {
console.log('testing article 1');
heading = ptor.findElement(protractor.By.tagName('h1'));
expect(heading.getText()).toEqual(config.ARTICLES_HEADING);
});
});
これにより、次の出力が得られます。
Selenium standalone server started at http://192.168.2.9:56791/wd/hub
logging in
LoginPage
logged in
logging in
LoginPage
logged in
testing dashboard 1
Ftesting article 1
describe両方のセクションが並行してキックオフしているように見えます。コードを適切な方法で構造化しながら、次の一連のイベントを強制するにはどうすればよいですか?
- ダッシュボード ページを読み込む
- ログイン
- ダッシュボード テストを実行する
- 記事ページを読み込む (すでにログインしているものとします)
- 記事のテストを実行する