2016-04-27 15 views
2

私は角シングルページアプリケーションのe2eテストのために枝角ジャスミンを使用しています。次のコードスニペットを考えてみましょう。上記の例ではテスト仕様書を条件付きで実行する方法 - 角度プロトラクタージャスミン

describe('Search', function(){ 
    it('Should Open the search modal popup', function() { 
    //code 
    expect(modalOpened).toBe(true) 
    }) 

    it('Search should return results', function(){ 

    }) 
    it('Search should not return results', function() { 

    }) 
}) 

Should Open the search modal popupモーダル自体が開いていないので、次にShould Open the search modal popupShould Open the search modal popup以下スペックも、失敗します失敗した場合。したがって、以下の仕様を実行することには意味がありません。条件付きで最後の2つの仕様を実行できますか?最初の仕様が合格した場合のように、以下の仕様が動作するはずです。

答えて

1

ユニットテストとE2Eテストが混ざっているようです。分裂器は、Seleniumのサブセットであり、統合テストまたはエンドツーエンドテストのみを実行するためのものです。各E2E仕様では、コード単位を統合して(統合テスト)、選択したブラウザで各機能を実行できるようにテストする必要があります(クリック検索や結果表示のモーダルなど)。さらに、modalOpenedのプロパティがtrueであることを確認することはありません。あなたは、モーダルがcss、classNameまたはその他のものによってあなたの結果と一緒に存在することを確認します。

幸いにも、分度器は、非同期のプロミスベースのイベントを提供します。

it('Should Open the search modal popup and show results', function() { 

    element(by.id('search')).click().then(
     function() { 
      // now check for modal to be displayed 

      // now check results are displayed 
     } 
    ); 
}); 

出典:

https://angular.github.io/protractor/#/api?view=webdriver.WebElement.prototype.click

https://angular.github.io/protractor/#/api?view=ElementFinder.prototype.then

+0

見えるモーダルがE2Eテストの一部ではないかどうかをテストあなたの検索アイコンをクリックすると、あなたはこれを行うことができますか? – Wishnu

+0

'modalOpenedプロパティがtrueであることをチェックしません。' ---- 実際に 'modalOpened'は' element(by.css( 'xx')) 'に相当するjavascript変数です – Wishnu

+0

あなたのテストはテスト機能ですその機能がどのように実装されているかではない。モーダルライブラリを交換する場合、JS変数ではなくCSSをテストしている場合でもテストは機能します。テストを実装する方法は、実装することを保証するほど重要ではありません。分度器の構文に従っていて、あなたが金であると予想されたら実際にモーダルショーをテストしている限り、 – colincclark

関連する問題