gpt4 book ai didi

javascript - 使用 Protractor 和远程 api 进行 AngularJS e2e 测试

转载 作者:行者123 更新时间:2023-11-28 08:24:16 27 4
gpt4 key购买 nike

我想测试我的 Angular 应用程序,该应用程序严重依赖于 API。该 API 正在使用 phpunit 进行单独测试,并且我们正在创建固定装置,因此理想情况下,我希望不必在 Angular 中创建另一组模拟固定装置。我现在只使用带有 chrome 驱动程序的 Protractor。

首先,我必须通过不是 Angular 应用程序的页面登录。

然后,我转到一个页面,该页面显示带有 ng-if='loadingCards' 的加载程序,并隐藏带有 ng-if='!loadingCards' 的表格,然后当检索卡片的 API 调用完成时,loadingCards 的值会翻转。

下面是测试规范的开头,它让您完成非 Angular 登录,然后带您进入卡列表页面。我想做的就是查看 cards $scope 变量的内容,以查看 API 确实返回了一些内容,但我总是得到一个空数组。

describe('User cards page', function() {
var driver;
var ptor;

beforeEach(function() {
ptor = protractor.getInstance();
ptor.ignoreSynchronization = true;
browser.ignoreSynchronization = true;
driver = ptor.driver;
});

it('should login', function() {
driver.get('http://local.local.com/login');
driver.findElement(protractor.By.name('_username')).sendKeys('admin');
driver.findElement(protractor.By.name('_password')).sendKeys('admin');
driver.findElement(protractor.By.css('input[type="submit"]')).click();
});

it('should list cards', function() {
browser.get('http://local.local.com/cms/cards');

var ucards = element.all(by.repeater('card in cards')).then(function(cards) {
console.log(cards);
});
//expect(ucards.count()).toEqual(3);
});
});

最佳答案

我认为你混淆了两件事。您可以写:

element.all(by.repeater('card in cards')).then(function(cards) {
console.log(cards);
});

或者:

var ucards = element.all(by.repeater('card in cards'));
ucards.then(function(cards) {
console.log(cards);
});

但你正在做……两者兼而有之。

你有没有发现任何错误?您能检查一下您当前的网址吗?

expect(browser.getCurrentUrl()).toEqual('http://local.local.com/cms/cards');

您好!

关于javascript - 使用 Protractor 和远程 api 进行 AngularJS e2e 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22613051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com