问题标签 [angularjs-e2e]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2567 浏览

angularjs - AngularJS:在 e2e 测试中访问 $scope 对象

我正在构建一个数学辅导应用程序,并想使用 Angular 的 e2e 测试套件来测试我的 UI。

目前我正在制作一个分数页面,该页面生成一个随机分数,显示一系列阴影和非阴影框,并要求用户输入由阴影形成的分数。

使用e2e 测试,我想测试 UI 如何响应正确和不正确的输入;但是,由于分数在页面加载时是随机的,所以我不知道测试内部的“正确”输入是什么。

对我来说,获得正确输入答案的最简单方法是访问位于$scope.problemObject控制器的 Fraction 对象,并调用其 API 函数.getNumerator().getDenominator(). 但是,我还没有找到从我的测试中获取这个对象的方法。

我的控制器的相关行是:

我试过的

  • binding()

最初我认为binding()会做我需要的事情,但是所有对binding('problemObject')orbinding('problemObject.getNumerator()'的调用都会发出一个错误,指出无法找到绑定。我怀疑这是因为$scope.problemObject它的返回值$scope.problemObject.getNumerator()没有直接绑定到 UI。

  • angular.element().scope()

angular.element('#problem').scope().problemObject从我正在测试的页面上的控制台执行完美;但是,在我的测试中尝试同一行会出现以下错误:“选择器未实现”。

我也尝试了一些变化:

element('#problem').scope().problemObject:错误:'对象#没有方法'范围''

angular.element(element('#problem')).scope().problemObject:错误:'无法读取未定义的属性'problemObject''

0 投票
3 回答
32022 浏览

angularjs - 如何验证在 AngularJS e2e 测试中选中复选框的时间?

我一直在尝试AngularJS e2e 测试,但在确定是否选中复选框时遇到了困难。

我将复选框输入的端到端测试用作示例(请参阅示例中的端到端测试选项卡)。

html片段:

Value1: <input type="checkbox" ng-model="value1"> <br/>

控制器片段:

这是我尝试过的:

1)expect(binding('value1')).toEqual('true');

只要value1在屏幕上显示,这在示例端到端测试中有效{{value1}}。如果您在本地对此进行测试并删除 `{{value1}},则绑定测试将失败。在我的大多数真实示例中,我没有在屏幕上的任何地方显示复选框值。

2)expect(input('value1').val()).toEqual('true');

该值将始终默认为on并且与复选框是否处于选中状态无关(取自这篇文章)。


注意:看起来 Angular E2E 测试将来会被Protractor取代(请参阅文档

0 投票
1 回答
248 浏览

angularjs - Angularjs E2E 场景测试是否可以访问 GET 参数?

我正在使用runner.htmlE2E 测试文件对 Angular 项目进行集成测试。

当我们想要手动查看测试期间正在加载的每个页面时,此 javascript 代码允许我们仅更改pauseAll文件顶部的变量。

我的问题:如果 GET 参数 pauseAll 是通过 runner.html url 传入的,如何使 pauseAll 等于 true?例如:

0 投票
1 回答
639 浏览

angularjs - 如何在代码更改后使 angularjs e2e-test 自动重新加载

当我运行 e2e 测试时,它会完成它的工作,但是当测试成功时会断开连接。有没有办法让它不断测试?

0 投票
2 回答
7488 浏览

angularjs - 在 AngularJS E2E 测试中使用 element().offset()

我正在用 Angular 编写端到端测试,我想验证一个 DOM 元素相对于另一个 DOM 元素的位置。幸运的是,Angular E2E DSL 为 jQuery 的 offset() 方法提供了一个直通方法。非常适合我的用例!

但是,我很困惑如何使用此方法返回的对象。对 offset() 的调用返回一个具有topleft属性的对象。当我尝试在测试中访问这些属性时,Angular 会抱怨。

这段代码很好用:

此代码不起作用,并引发错误:

如何使用 offset() 的返回来构造一个大致如下的期望:


更新

在与 Josh David Miller 反复讨论之后,我发现我真正的问题是:如何在 expect() 调用之外获取 angular.scenario.Future 对象的值,这样我就可以将其用作其他期望的基础?

0 投票
2 回答
409 浏览

unit-testing - 使用 ENTER 键进行 AngularJS e2e 测试

我正在尝试为 AngularJS TODO MVC 应用程序编写单元测试,但我在学习 e2e 测试语法时有点卡住了。

到目前为止,这就是我所拥有的:

我的配置:

简而言之,我需要一种模拟“输入”键的方法,因为这就是 TODO MVC 应用程序将项目添加到列表中的方式。我怎样才能做到这一点?

0 投票
3 回答
14304 浏览

angularjs - Javascript.confirm() 和 Angularjs Karma e2e 测试

我有一个Angularjs应用程序,它在执行某些操作之前使用简单的 javascript 确认。

控制器:

看法:

现在我想进行端到端测试以检查令牌在视图中是否被正确替换。如何拦截javascript.confirm()呼叫,使其不会停止测试的执行?

测试:

到目前为止,我已经尝试重新定义该window.confirm函数,但实际调用抱怨它未定义。

我还想设置一个 Jasmine 间谍,window.confirm但在下面的语法中spyOn(window, 'confirm');它给了我一个错误,说你不能间谍null

我将如何进行这样的测试?

0 投票
1 回答
1354 浏览

jquery - 在 AngularJs 中的 Karma E2E 测试中完全支持 Jquery

如何在我的 Karma E2E 测试中访问完整的 JQuery 库?

0 投票
3 回答
3798 浏览

angularjs - Angular E2E 测试:从“元素”获取“输入”

我尝试使用 Angular 的 e2e 测试框架设置文本字段值。根据他们的文档,我必须使用:

input(<model>).enter(<value>)

但是,由于模型嵌入在转发器中,因此从测试上下文传递模型并不是直接的。不过,我可以通过以下方式拉动它:

element('my_element_here', 'description')

但是,只能从显然返回的内容中调用该调用.enter(<value>)并且我不知道如何将返回的内容转换为返回的内容,因此我可以简单地调用它!input()elementinput()enter()

我不得不假设我只是忽略了一些东西......

0 投票
2 回答
143 浏览

angularjs - 测试外部 AngularJS 应用程序

无论如何在外部应用程序上使用 AngularJS 进行 E2E 测试?这意味着我们希望能够在 Windows 和 Linux 机器上运行 Karma 测试运行程序来测试位于http://externaldomain.com的应用程序(在不同的机器上)

我见过的所有示例都将它们的应用程序托管在与 Karma (localhost) 相同的服务器/域上,这对我们来说不是一个选项,我们想看看我们是否可以从使用 Selenium 测试转换为使用 Angular DSL 的 E2E但这对我们来说是个问题,因为看起来 Karma / E2E 不支持这个?

谢谢