问题标签 [angular-test]
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.
javascript - 使用量角器控制鼠标移动
在特定情况下,我必须完全控制我的鼠标,而在actions()
课堂上我无法做到这一点。
在我的应用程序中有一个地图,并且有一个功能,它使用套索选择地图的某些部分(比如我们用套索画一个圆圈,选择用红色圆圈表示),然后只有一个弹出窗口用于进一步导航,但是当我使用下面的动作类时
实际的鼠标移动没有发生,我没有找到解决方案,除了使用 Java 机器人类,因此我想创建一个批处理文件,它调用一个带有机器人方法的 Java 类,但我不知道该怎么做。
更新
在执行上面的代码时,这是我的观察:
- 直到
var plot0
行,代码正常执行。 - 之后
browser.action()...
仅在量角器关闭 Chrome 之前执行。不知道为什么。(我也包括睡眠来验证) - 同样在 Chrome 关闭之前,我可以在地图上看到一条直的红线,但后面没有任何弹出窗口(可能鼠标没有被操作类释放)
只是为了添加这次我没有plot0
在代码中传递任何元素,我只是在执行上述规范之前手动将鼠标指针保持在地图上。
angular - Angular2 单元测试与@Input()
我有一个@Input()
在实例变量上使用注释的组件,我正在尝试为该openProductPage()
方法编写单元测试,但我对如何设置单元测试有点迷茫。我可以公开那个实例变量,但我认为我不应该诉诸于此。
如何设置我的 Jasmine 测试以便注入(提供?)模拟产品并且我可以测试该openProductPage()
方法?
我的组件:
angular - 为什么我的单元测试在 Chrome 中通过而在 PhantomJS 中失败?
我正在使用 Angular2 final (2.0.2) 和 angular-cli。我正在尝试将其设置为使用 PhantomJS 运行单元测试。使用 Chrome 和 karma-chrome-launcher 运行规范 - 所有测试都通过。使用 Phantomjs-prebuilt 2.1.13 和 karma-phantomjs-launcher 1.0.2 运行相同的测试失败。
我将 phantomjs 启动器添加到 karma.conf 中的 plugins 数组,以及 browsers 数组中的 PahntomJS。
我得到的错误是:
PhantomJS 2.1.1 (Mac OS X 0.0.0) DataTableFormat 应该以毫秒为单位转换日期 FAILED ReferenceError: Can't find variable: Intl in src/main/js/test.ts (line 53565) intlDateFormat@webpack:///Users /sninio/dev/csp-ui/~/@angular/common/src/facade/intl.js:117:0 <- src/main/js/test.ts:53565:20 webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:148:36 <- src/main/js/test.ts:53596:59 dateFormatter@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:157:0 <- src/main/js/test.ts:53605:39 format@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/facade/intl.js:192:0 <- src/main/js/test.ts:53640:29 transform@webpack:///Users/sninio /dev/csp-ui/~/@angular/common/src/pipes/date_pipe.js:92:0 <- src/main/js/test.ts:70473:90 transform@webpack:///Users/sninio/dev/csp-ui/src/main/js/app/pages/+platform/events/data-table/data-table.pipe.ts:9:4418 <- src/main/js/test.ts:52698:5787 webpack:///Users/sninio/dev/csp-ui/src/main/js/app/pages/+platform/events/data-table/data-table .pipe.spec.ts:20:30 <- src/main/js/test.ts:60923:30 execute@webpack:///Users/sninio/dev/csp-ui/~/@angular/core/bundles /core-testing.umd.j <- src/main/js/test.ts:2997:28 webpack:///Users/sninio/dev/csp-ui/~/@angular/core/bundles/core-testing .umd.js:951:32 <- src/main/js/test.ts:3084:56 invoke@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone。 js:203:0 <- src/main/js/test.ts:98886:33 onInvoke@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/proxy.js:72 :0 <- src/main/js/test.ts:68790:45 调用@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:202:0 <- src/main/js/test.ts:98885:42 运行@ webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:96:0 <- src/main/js/test.ts:98779:49 webpack:///用户/sninio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:91:27 <- src/main/js/test.ts:68526:53 execute@webpack:///Users /sninio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:119:0 <- src/main/js/test.ts:68554:46 execute@webpack:///Users/ sninio/dev/csp-ui/~/zone.js/dist/jasmine-patch.js:119:0 <- src/main/js/test.ts:68554:46 invokeTask@webpack:///Users/sninio /dev/csp-ui/~/zone.js/dist/zone.js:236:0 <- src/main/js/test.ts:98919:42 runTask@webpack:///Users/sninio/dev/ csp-ui/~/zone.js/dist/zone.js:136:0 <- src/main/js/test.ts:98819:57 drainMicroTaskQueue@webpack:///Users/sninio/dev/csp-ui/~/zone.js/dist/zone.js:368:0 <- src/main/js/test.ts:99051:42 PhantomJS 2.1 .1 (Mac OS X 0.0.0) DataTableFormat 应该转换日期字符串 FAILED
也许我在 angular-cli 创建的 test.ts 文件中缺少一些配置?
更新:
似乎只有导入失败的测试DatePipe
和JsonPipe
.
我也尝试导入@angular/common/testing
,test.ts
但这无济于事 - 它们没有在相关的 index.js 中导出。
还尝试导入整个文件@angular/common/pipes
,但这也不起作用。
这是管道:
和规格:
这是我的文件-与...test.ts
生成的文件没有太大变化angular-cli
知道为什么这适用于 Chrome 而不是 PhantomJS 吗?
angular - Angular 2 测试 - 异步函数调用 - 何时使用
在 Angular 2 中进行测试时,何时使用TestBed中的异步功能?
你什么时候用这个?
你什么时候用这个?
任何人都可以启发我吗?
angular - 如何使用可观察服务测试组件错误处理
语境
我正在尝试测试一个组件。在另一篇文章中,我询问了有关测试直接函数调用的问题。在这里,我使用相同的示例组件将重点放在组件的错误处理上。
我想测试,当我的服务返回一个可观察到的错误时,我的组件是否正确调用了 console.error(error)。
如何“创建”此错误触发器并测试我的组件是否正确处理它。我听说间谍可以做到这一点,但我不知道在哪里设置这个间谍。
我想模拟服务上的http请求可能失败的情况。出于任何原因或任何错误代码。
代码
这是组件、存根服务和我的规范文件的代码。
零件
组件规格文件
存根服务
angular - angular Testbed overrideModule not working
When using the following configuration for a test fixture, I get complaints that the tag cannot be found. Substituting the MockSelectionToolComponent
directly in AppModule
works fine, so must be something else...
Error: Template parse errors: 'app-selection-tool' is not a known element:
angular - 在 Angular 4 项目中的功能性 e2e 量角器测试中模拟休息调用
我们有一个庞大的项目,我们编写了很多测试用例来涵盖我们 e2e 功能测试用例中的大量真实场景用户行为。
随着测试的进行,它会进行大量的休息调用来完成测试用例。当我们在酱实验室覆盖不同的浏览器时,它会增加 5-9 倍。
我想要的是模拟所有其余的调用,这样就不会对实际服务器进行任何真正的调用,但会在内部对其进行处理。它用于功能性 e2e 测试而不是单元测试,因为我们使用 jasmine 模拟了所有单元测试spyOn
。
我已经探索json-server
了$httpBackend
量角器。son-server 不适合,因为它不能很好地处理应用程序发布、放置、删除调用。在 $httpBackend 的情况下
我已经阅读了这篇文章及其适用于 andularJs 应用程序而不是 Angular 应用程序,以及它所有关于 angularJs 的单个休息调用模拟,而不是所有休息调用。
还查看了 angularjs 的这个 angularjs multi mock,它也适用于 angularjs 而不是 angular,看起来这改变了查询参数的原始 rest url。
angular - 在Angular单元测试中使用回车键提交表单
我正在为作为登录表单的 Angular 4 组件编写测试。可以通过单击“提交”按钮或在任何输入字段中按 Enter 来提交表单。此行为由 Angular 表单指令规定。
我可以编写一个测试用例来验证按钮单击是否提交了表单,但我无法通过按键事件触发提交行为。
模板:
规格:
从按钮分派“点击”事件的测试通过,但从输入元素分派 keydown 事件的测试(当前禁用)失败。
我可以调度不同的事件来触发表单的 ngSubmit 处理程序触发吗?
angular - 角鼠标进入单元测试不起作用
我正在尝试在 Angular 4 业力单元测试中测试鼠标输入,没有错误但鼠标输入没有调用绑定到鼠标输入事件的方法。
在组件类中,我调用以下方法
测试鼠标输入:
在我的测试中,我试图调用鼠标输入事件,但预期的结果不匹配。当我看到代码覆盖率时,甚至没有调用该方法。
有什么想法吗?
angular - 模拟角度服务类属性或变量
我正在对 Angular 应用程序进行单元测试,并且需要模拟一项服务。我能够毫无问题地模拟服务方法,但是当我尝试以同样的方式模拟属性时,它给了我错误
我的配置服务有一个属性和一个方法,我想模拟该属性,因为我无法生成该值。
服务
在角度测试中模拟服务
当我这样做时,它给了我错误。