2016-08-25 15 views
3

Page Object Patternベースのテストで再利用可能なメソッドのコールバック/約束を分度器で書く必要がありますか?分裂器で再利用可能なメソッドのコールバック/約束

たとえば、以下のテストコードとページオブジェクトとその問題なく正常に動作します。しかし、私はページクラスの再利用可能なメソッドのコールバックを追加する必要がありますか?

describe('This is a test suite for Login cases',function(){ 
    beforeEach(function() { 
     LoginPage.goHome(); 
     LoginPage.doLogin(); 
    }); 
    afterEach(function() { 
     LoginPage.doLogout(); 
    }); 
    it('Scenario1_Login_VerifyFirstName',function(){ 
      //Some Test step  
    }); 

ページクラス:

var Login = { 

    PageElements: { 
     emailInput: element(by.css('.email')), 
     passwordInput: element(by.css('.password')), 
     loginForm: element(by.css('.form')), 
     logout: element(by.linkText('LOG OUT')) 
    }, 
    goHome: function goHome() { 
     browser.get('/signin'); 
     browser.driver.manage().window().maximize(); 
    }, 
    doLogin: function doLogin() { 
     this.PageElements.emailInput.sendKeys(UserName); 
     this.PageElements.passwordInput.sendKeys(Password); 
     this.PageElements.loginForm.submit(); 
    }, 
    doLogout: function doLogout() { 
     browser.wait(EC.elementToBeClickable(this.PageElements.profileLink)); 
     this.PageElements.profileLink.click(); 
     this.PageElements.logout.click(); 
    } 
}; 

module.exports = Login; 
+0

あなたまで、コールバックを追加する必要はありません特定の理由 –

+0

@SureshSalloju今はwebdriverJsコマンドしかなく、ControlFlowのために連鎖してしまいます。しかし、webdriverjs以外のアクションがあればどうでしょうか?また、コールバックなしで値を返すことは可能ですか? – AdityaReddy

答えて

0

はいすることができます。単に値や約束を戻すことにより

goHome: function() { 
    browser.get('/home'); 
    return browser.getTitle(); 
}, 

、以下のような仕様のレベル内の「それ」のブロックにそれらを解決する必要があります

it('Page should have a title', function() { 
    expect(Page.goHome()).toEqual('Home Page'); 
    }); 
関連する問題