Page 300 - AngularJS权威教程
P. 300
280 第 19 章 测试
因为是在做端对端测试,我们需要有一个服务器来让端对端测试在上面运行。
describe('E2E: main page', function() {
var ptor;
beforeEach(function() {
browser.get('http://127.0.0.1:9000/');
ptor = protractor.getInstance();
});
});
不是每次要测试一个页面,都要把测试指向完整路径,可以在Protractor配置文件里面设置
baseUrl。对于本节的剩余部分,我们默认这个选项被设置成这样:
baseUrl: 'http://127.0.0.1:9000/',
我们第一个测试会简单地测试主页加载:可以测试页面上存在某个元素。既然主页包含了一
个ID #home,可以编写一个期望来保证这个条件。
首先使用by.id()函数来找到我们关注的元素,用#main ID来定位这个<div>:
it('should load the home page', function() {
var ele = by.id('home');
});
有了这个元素以后,就可以使用Protractor的实例方法isElementPresent()来设置一个预期:
元素在页面上。
it('should load the home page', function() {
var ele = by.id('home');
expect(browser.isElementPresent(ele)).toBe(true);
});
要运行我们的测试,需要启动一个Selenium服务器。幸好,Protractor通过一个叫做
webdriver-manager的内置工具把这个过程变得很容易。这个管理器默认就被包含在内了(正如
我们在上面看到的)。我们来启动webdriver-manager:
$ ./node_modules/protractor/bin/webdriver-manager start
在一个新的shell里,我们要启动Protractor来真正运行我们的测试。分度器二进制文件带单个
参数:配置文件。运行过程如图19-11所示。
$ ./node_modules/protractor/bin/protractor protractor_conf.js
图19-11 运行过程