问题标签 [ngdescribe]
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.
angularjs - ngDescribe 不会完成第二个规范
我在使用 ngDescribe 时遇到了链式规范的问题。第二个规范永远不会完成并超时。如果我注释掉第一个规范,则第二个规范成功完成。所以,我知道每个规范都是有效的并且有效。
这是两个规格的整个测试。
javascript - 使用 ng-describe 进行带量角器的端到端测试
我最近发现了一个很棒的ng-describe
包,它通过抽象出你必须记住/查找和编写的所有样板代码来加载、注入、模拟或监视,从而使为 AngularJS 应用程序编写单元测试变得非常透明。
有人试过用ng-describe
withprotractor
吗?这有意义吗?我们能从中受益吗?
引起我注意的一件事是您可以轻松地模拟 HTTP 响应:
模拟 HTTP 响应通常有助于实现更好的 e2e 覆盖并测试 UI 如何对特定情况做出反应以及错误处理如何工作。这是我们目前正在做的事情protractor-http-mock
,还有其他选项看起来不像使用ng-describe
.
angularjs-directive - ng-describe/Angular/Karma 单元测试:使用 ng-describe 的 setupControllers 编译带有所需控制器的指令
我正在使用ng-describe
(我必须说,很棒)为 angularJS 编写业力单元测试。
我有两个指令。我想测试testing
需要somethingController
.
code:
如果我使用手动编译,我能够成功运行这些测试。
如果我不进行手动编译,最终会出现以下错误:
我真正想做的是:
我正在尝试最大限度地使用 ng-describe 并摆脱手动编译。我试过使用describeApi.setupControllers
https://github.com/kensho/ng-describe#secondary-options但我没有运气。
- 使用 a
describeApi.setupElement('<testing></testing>')
会给我留下上面显示的 $compile 错误。 - 使用
describeApi.setupControllers('something')
给我留下了错误:Error: [ng:areq] Argument 'something' is not a function, got undefined
- 我试图设置名为
something
,somethingController
,的控制器$something
,$somethingController
但我也在undefined, not a function
那里看到了错误。
有没有办法让这个工作?目前我无法在网上找到解决方案...
javascript - AngularJS 自定义验证指令单元测试:模型值未定义
我有一个指令,在我的输入上添加一个验证器以供 ng-messages 使用:
我正在尝试对其进行单元测试(使用 ng-describe):
但是有两个问题(可能有相同的原因??):
- 第一个测试失败是因为
$scope.model.date
是undefined
(它应该被更新,'01/01/2001'
因为它是一个有效的输入)。我注意到$modelValue
fromform.dateField
也是未定义的。我知道那$scope.model.date
是更新的,因为如果它不会,它会是null
. 但是为什么undefined
? - 第二个测试失败,因为它
$valid
仍然true
存在(它应该被更新,false
因为它是无效的)。我再次问:为什么?
我试图将我的代码与这个帖子的答案进行比较,但我没有看到我的错误在哪里。
请注意,该指令在我的应用程序表单中运行良好(模型正在按预期更新,并且 ng-messages 也可以工作),所以我不知道我在这里做错了什么。
如果有帮助,我正在使用 Angular 1.4.7。
编辑 :
尝试了这种方法,结果相同。$modeValue
保持未定义,而使用$viewValue
正确$$rawModelValue
的字符串进行更新。
这些是我的测试日志:
javascript - $httpBackend 似乎没有刷新请求
我正在使用 ngDescribe 测试我的 Angular 应用程序。我不认为ngDescribe 在这里应该是一个太大的问题,因为它只是为我管理依赖注入。我首先开始尝试按照 ngDescribe 文档所说的方式进行测试,在下面的代码中,我将其更改为更直接的方法,以查看是否可以进行任何更改。我正在调用一个依次调用的方法,在$http.post('urlname', data);
调试时我可以清楚地看到我的方法一直到达它调用 post() 的位置,但它永远不会继续。因此,我的测试总是超时。
希望我只是有一些简单的错误!这是我的代码。失败的测试是“应该工作”,所有其他的都按预期通过。
另请注意,在测试之前,这是由测试和服务的 babel 处理的。
这是服务,使用时效果很好。我已经删除了它涉及的一些其他变量,但我向您保证这些变量工作正常。在调试测试时,我可以看到等待被击中,但它永远不会继续过去,或者返回。在应用程序中使用时,它完全按预期返回。我认为这与ngmock没有按应有的方式返回有关。
以下是测试:
被调用的方法 apiCall 只是一个由它解析的 promise,$http.post().then();
如果抛出错误,它也会解析 false。
由于 deps.http.expectPOST 没有失败,我可以看出传出请求已发送。我通过将其更改为 expectGET 来验证这一点,然后我收到一个关于它是 POST 的错误。
我曾尝试将 flush() 方法移动到测试方法的所有不同部分,但似乎没有什么区别。
有什么想法吗?非常感谢你的帮助!