这就是我现在的风格。一个相当简单的页面对象模型。
var loginPage = require('../pages/loginPage');
var homePage = require('../pages/homePage');
describe('Login', function () {
it('Valid Login should successfully reach the home page, with valid page title.', function () {
browser.driver.get("https://dev.mysite.com/");
loginPage.login('TestUser', 'TestPassword');
homePage.getHeaderText();
//expect header text to equal "My header"
});
});
官方 Protractor 风格指南建议这样做。它似乎为每个测试的页面创建一个唯一的对象。这样做有什么好处吗?
var loginPage = require('../pages/loginPage');
var homePage = require('../pages/homePage');
describe('Login', function () {
var loginPageObj = new loginPage();
var homePageObj = new homePage();
it('Valid Login should successfully reach the home page, with valid page title.', function () {
browser.driver.get("https://dev.mysite.com/");
loginPageObj.login('TestUser', 'TestPassword');
//or should homePageObj be initialized here,
//right before it is first used?
homePageObj.getHeaderText();
//expect header text to equal "My header"
});
});
最佳答案
用自己风格的方式还是不错的。
为什么官方指南这么说是, 它将有助于使测试文件独立。 如果您实例化为对象,您可以很好地定义您的范围。 以及代码的更好理解/可读性。
我以前也遵循你自己的风格。
现在我正在使用 typescript /Protractor 组合。新风格指南更有意义。
但这两种风格在功能上都与您自己的风格完美配合。 :)
关于javascript - 我需要使用 Protractor 初始化 Spec 文件中的页面对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50157004/