我们想使用量角器访问页面,运行一些测试,然后转到另一个页面进行更多测试。但是后面的导航似乎会干扰上一页的测试。
这是结构:
describe('When user is an admin', function () {
browser.get(browser.baseUrl + 'login');
loginAs(roles.admin);
wait();
describe('After log in', function () {
it('should redirect to the home page', function () {
expect(browser.getCurrentUrl()).toBe(browser.baseUrl + 'home');
expect(true).toBeTruthy();
});
it('should contain a "Locations" tab', function () {
var tabLocations = element(by.id('tabLocations'));
expect(tabLocations.isPresent()).toBeTruthy();
});
it('should contain a link to location list', function () {
var linkLocation = element(by.linkText('Manage Locations'));
expect(linkLocation.isPresent()).toBeTruthy();
});
});
});
上面粘贴的是第一页上的测试。
然后我们想在另一页上运行测试:(完整编码粘贴在下面)
describe('When user is an admin', function () {
browser.get(browser.baseUrl + 'login');
loginAs(roles.admin);
wait();
describe('After log in', function () {
it('should redirect to the home page', function () {
expect(browser.getCurrentUrl()).toBe(browser.baseUrl + 'home');
expect(true).toBeTruthy();
});
it('should contain a "Locations" tab', function () {
var tabLocations = element(by.id('tabLocations'));
expect(tabLocations.isPresent()).toBeTruthy();
});
it('should contain a link to location list', function () {
var linkLocation = element(by.linkText('Manage Locations'));
expect(linkLocation.isPresent()).toBeTruthy();
});
});
describe('at location manage page', function () {
var listPage = new ListPage();
listPage.visit('Manage Locations');
wait();
it('should be at the location list page', function () {
expect(browser.getCurrentUrl()).toBe(browser.baseUrl + 'locations/list');
expect(true).toBeTruthy();
});
});
});
第二个describe
中的导航似乎在第一个it
中执行describe
语句之前运行,因此我在第一页上的测试失败。
我尝试将第二个describe
(“位置管理页面”)放在第一个describe
(“登录后”)中,但仍然遇到同样的问题。
所以我的问题是,在量角器中安排测试的正确方法是什么,以便后续测试中的导航将一直持续到之前的测试完成?
答案 0 :(得分:4)
不要将代码放在describe中。把它放在beforeAll(function(){})
(茉莉花2)或beforeEach(function() {})
那应该解决你的问题。