2017-12-29 37 views
1

現在、私はどこから始めたらいいのかわからないので、表示するコードはありません。外部でホストされたログインを使用して角型コンポーネントテストを行うにはどうすればよいですか?

角度のあるアプリでエンドツーエンドのテストを行った人は、ブラウザをスピンアップしてコンポーネントのテストを実行しようとするng e2eコマンドに精通している必要があります。

私がテストしているアプリでは、Auth0でホストされているログイン画面でログインする必要があります。このログイン画面では、アプリにリダイレクトされ、トークンはローカルストレージに設定されます。アプリケーションのルーティングがホームページに移動するのを有効にします。

私の問題は、標準的な機能が実行され、auth0のホストされたログイン画面にリダイレクトされて、アプリケーションが回転して、見ているページが角形のアプリケーションではなく、テスト/ブラウザが閉じていることを確認することです。

テストやその他の目的で偽のアクセストークンを設定している人はいますか?

+0

もっと詳しくお手伝いするコードを追加してください – Aravind

答えて

0

これは誰も見ることはできませんが、分度器を見れば、そこからWebdriver(つまりセレン)コマンドを外部サイトで実行できるwebdriverのインスタンスを取得する方法があります。

0

基本的に裸のウェブドライバを使用して、いくつかの戦略的に配置された睡眠を伴うログイン機能を実行しました。睡眠はちょっとハッキリで、待っているようなものに取り替えることができましたが、今は仕事をしました。私はAuth0ページは、私はすでに次の試験のために、ユーザーにログインしてる場合はログインして私を求めているかどうかを条件if文で独自の機能に上記の抽象化してきた上でその後

it('should log in with test user, expect h1 Welcome on front page',() => { 
    return page.clickLogIn()) // my page has a log in button that is in its own page object 
     .then(_ => browser.sleep(3000)) // wait for Auth0 page to load 
     // from here you use non protractor syntax and follow webdriverjs 
     // using "browser.driver" 
     .then(_ => browser.driver.findElement(By.name('email'))) 
     .then(e => e.sendKeys('[email protected]')) 
     .then(_ => browser.driver.findElement(By.name('password'))) 
     .then(e => e.sendKeys('23p98pjasrnvaaa')) 
     .then(_ => browser.driver.findElement(By.css('button'))) // can't find it by text for some reason 
     .then(e => e.click()) 
     .then(_ => browser.driver.sleep(6000)) 
     // here we're back to protractor 
     .then(_ => element.all(by.cssContainingText('h1', 'Welcome, someone'))) 
     .then(l => expect(l.length).toBe(1)); 
}); 

。したがって、各テストでは、関数はログインするか、「[email protected]」ボタンをクリックします。

関連する問題