问题标签 [jest-preset-angular]
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.
angular - 运行 jest-preset-angular 时出现 ENONET 错误
我正在尝试为我的 Angular 项目集成 jest 以进行单元测试。
我按照此链接中的说明进行操作。
我在ENOENT: no such file or directory, open 'E:\source-code\packages\core\src\view\ng_module.ts'
跑步时遇到了一个奇怪的错误。
我的文件夹结构没有名为package的文件夹。经过大量挖掘后,我发现packages\core\src\view\ng_module.ts'
npm 包使用了该文件夹(角度:P)
我不知道这个错误是如何被抛出的,当我通过业力运行时不会发生
这是我开玩笑的配置
"jest": {
"preset": "jest-preset-angular",
"setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts",
"globals": {
"ts-jest": {
"tsConfigFile": "src/tsconfig.spec.json",
"useBabelrc": true
},
"__TRANSFORM_HTML__": true
},
"transform": {
"^.+\\.(ts|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js",
"^.+\\.js$": "babel-jest"
},
"transformIgnorePatterns": [
"<rootDir>/node_modules/(?!(@ngrx|ngx-dialog|ng-infinity))"
]
}
angular - 等效于 jest-preset-angular 中的 and.callThrough()
阅读此链接,我知道相当于
and.callFake
是mockImplementation
和
and.returnValue
是mockReturnValue
。
and.callThrough()
同样,在 jest-preset-angular 中是否有等价物?
angular - 使用 Jest 和 Angular 5 测试效果
我正在实施效果测试。
测试给出了错误:
[{"frame": 10, "notification": {"error": [TypeError: Cannot read
property 'getDowntimeOfProductShiftGraphic' of undefined], "hasValue":
false, "kind": "E", "value": undefined} }]
但getDowntimeOfProductShiftGraphic
在我的服务中是一种方法。
我遵循了这个项目的指示以及 Jesse Sanders 关于在 ng-conf 中进行Jest 测试的谈话。
下面是我的部分测试代码。
更新
我的问题的解决方案是在 webpack 中进行一些配置以识别测试。感谢所有花时间帮助我的人。
typescript - 使用 Jest 模拟对象数组
我正在尝试使用 Jest 为 Angular 应用程序中的服务编写单元测试,并且我有一个关于如何模拟数据的问题。作为我的模拟数据的一部分,我需要模拟Array<App>
具有这样的接口
通过抛出此错误,我的测试无法运行我正在测试的服务
在服务代码中的这行代码(该服务在测试之外工作正常):return this.appsPromise.then(apps => [...apps]);
我应该如何更改应用程序数组的模拟数据,以免引发此错误?非常感谢
angular - 带有 Jest 单元测试的 Angular 6
我使用 Angular 6 ( https://github.com/KrunalLathiya/Angular6CRUDTutorial )克隆了一个入门项目。我删除了 Karma 并安装了 Jest。该站点加载正常,但单元测试失败并出现以下错误:
app.component.ts:
app.component.test.ts:
我需要一些特定的东西让 Jest 和 Angular 一起工作吗?谢谢!
angular - Angular w/Jest:`verify()` vs.`expectOne()`?
我有一个失败的测试,我不确定如何修复。我从 Jest 得到的错误消息似乎是矛盾的,问题与两个Angular HttpTestingController方法的行为有关:verify()
和expectOne()
.
有问题的测试,在其文件的上下文中:
Jest 返回此错误消息:
URL 变量在错误消息中呈现的事实undefined
是无关紧要的 - 在通过测试中也是如此。
令我困惑的是,当expectOne()
在测试中到达时,找不到对 的请求undefined/cover/api/cover-images/full
,但在测试之后,在相同的URLverify()
处找到 GET 请求: 。还发现一个 GET 请求在当放置在之前的测试行中时。undefined/cover/api/cover-images/full
verify()
undefined/cover/api/cover-images/full
expectOne()
为什么不expectOne()
捕捉请求但捕捉到了verify()
?错误消息是否没有告诉我我需要的一切?无论我是运行jest
还是jest --verbose
.
angular - 测试一个使用 Observable.forkJoin 和 Jest 的 Angular 方法
我正在尝试为使用 Observable.forkJoin 的组件方法编写测试。我已经在网上到处找了一些弹珠兔子洞,但最后我认为我真正需要做的就是模拟 Observable forkJoin 调用并返回假数据。这是我的组件方法
到目前为止,这是我的测试:
我收到以下错误(在我注释掉上面的错误捕获之后):
Marbles 似乎关心测试 observable 以及它如何反应。我只是想看看调用是否正在进行,并对所有数据连接在一起的订阅内部发生的情况进行更深入的测试。
我知道有更好的方法来处理数据,但这需要对应用程序进行大修。我不能改变方法,只能忍受现在的样子。
angular - Angular:从 Karma 移动到 Jest 后,出现错误“无法识别的 CLI 参数”
我将我的项目从 Angular 6.4 更新到 Angular 7.1,现在运行脚本:ng test app-name --coverage
给了我错误:
angular.json 中测试命令的配置如下所示:
我应该如何更新配置以与 Angular 7 兼容?
jestjs - 是否可以开玩笑地激活覆盖但不在控制台中打印?
来自 Karma,我喜欢打开浏览器选项卡,以不时检查我的测试的代码覆盖率。是否可以通过开玩笑来生成覆盖文件夹而不在控制台中打印覆盖范围?
我还没有找到任何有关此的 cli 或配置。
angular - 开玩笑报道中意外发现的分支
我正在用玩笑(使用jest-preset-angular
)测试一个角度项目。
收集覆盖率时,我得到一个未覆盖的分支,我不明白为什么。我可以用 3 个文件重现问题。
some-dependency.ts
some-service.ts
some-service.spec
通过运行yarn jest --coverage some-service
,我得到以下报道:
在 HTML 报告中,我得到的关于未发现内容的信息太少。
我注意到移除@Injectable
装饰器会使覆盖率恢复到 100%
有人有解释吗?有没有办法在保留@Injectable
装饰师的同时获得 100% 的覆盖率?
编辑:我添加了一个 console.log 来证明构造函数被正确调用。黄色突出显示由 Istambul 报告提供,有助于查看未覆盖的分支。但是我这里没有分支,因为没有条件。