2016-09-14 55 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