2016-09-14 88 views
-1

我如何將一個測試規範傳遞給另一個測試規範來繼續流程。例如說,我有一個成功的登錄規範,登錄到我的網站,並說返回是否通過。我怎麼能將該規範傳遞給一個測試我的結帳過程的規範,該規範要求您登錄?我使用的摸查,並Webdriver.IO運行測試通過測試規範到另一個測試規範

我有一個規範這樣

var LoginPage = require('../pageObjects/login.page'); 

describe('login form', function() { 

    it('page title should be Sign In', function() { 
    LoginPage.open(); 
    var title = LoginPage.title(); 
    expect(title).to.contain('Sign In'); 
    }) 

    it('should grant access with creds', function() { 
    LoginPage.open(); 
    LoginPage.username.setValue('[email protected]'); 
    LoginPage.password.setValue('11111111'); 
    LoginPage.submit(); 
    var title = LoginPage.title() 
    expect(title).to.contain('Your username is invalid!'); 
    }); 
}); 

我想調用另一個規範該規範。

+0

中運行,可以不通過規範,你提取共享邏輯放到一個輔助函數或方法(例如,請參閱*「頁面對象」*範例)。 – jonrsharpe

+0

你是指這裏描述的頁面對象嗎? http://martinfowler.com/bliki/PageObject.html我使用這個範例來刪除我的腳本中實際獲得的html元素,但是這並不能回答我如何在測試之間傳輸簽名應用程序狀態的問題。 –

回答

0

您不必通過任何規格。你需要做的是用摩卡鉤子描述here

你必須根據你的需要寫登錄和訪問規格在

before(function() { 
    // runs before all tests in this block 
    }); 

beforeEach(function() { 
    // runs before each test in this block 
    }); 

。如果您使用before(function(),該代碼將全部its之前運行,如果你使用beforeEach(function(),它將每個its之前在您describe