问题标签 [angular-spectator]
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 - Angular Spectator,不能使用自定义匹配器
我正在尝试使用旁观者来测试我的 Angular 组件。我想使用其中一个自定义匹配器,但出现错误Property 'toBeEmpty' does not exist on type 'JestMatchersShape<Matchers<void, Element>, Matchers<Promise<void>, Element>>'
。
该组件非常简单,这是一个简单的测试:
我阅读了旁观者的文档,并没有说任何关于导入自定义匹配器的内容,还有互联网上的示例,他们在使用它们之前没有提到任何要做的事情。
angular - 使用 jest-mock-extended 和 Spectator 进行角度组件测试
我已经成功地使用jest-mock-extended来测试服务,它对我来说很好用。它简单、易于使用且打字安全。
现在我必须测试 Angular 组件。为此,我找到了Spectator。我设法为没有使用该SpectatorHost
功能的服务的简单组件编写测试。现在我必须用我应该模拟的服务来测试一个组件,但我真的很难做到这一点。
出于这个原因,我想知道是否有办法将创建的模拟注入jest-mock-extended
到内部生成的组件中SpectatorHost
。
通过这种方式,我还将使用相同的库来模拟我项目中的服务。
angular - 如何使用 Jest/Spectator 在 Angular 中测试路由/导航?
我正在尝试为 Angular 10 应用程序编写端到端规范,但我无法通过路由器/导航测试从一个组件到另一个组件(当我在浏览器中运行应用程序时工作正常)。
我的路线配置如下:
我的导航栏模板为:
我的规格如下:
我尝试了不同的变体createComponent
,无论是createComponentFactory
或createRoutingFactory
,有或没有stubsEnabled
。似乎没有任何工作,并且路由不会触发加载附加到路由的组件。
我已经能够在单击该console.log 时添加一个事件,并且单击确实在规范执行期间触发了它,因此该事件会传播;只是路由没有运行。
的值(spectator.fixture.nativeElement as HTMLDivElement).outerHTML
不变。
编辑:我创建了一个小型复制项目,它托管在https://stackblitz.com/edit/angular-ivy-epvfki但是它不能直接在 StackBlitz 上运行(不能在浏览器中运行 jest),所以它需要下载和
这个测试应用程序有 2 个按钮通向 2 个路由,规范单击一个按钮并测试路由是否触发,但它没有。
angular-spectator - 使用 Spectator 测试文本字段输入
我正在尝试使用@ngneat/spectator
6.1.1 版测试我的指令
这总是以input.value
空白返回。我刚刚开始使用观众。执行此测试的正确方法是什么?
angular - Angular Spectator 测试的 `within` 等价物
使用 react-testing-library 时,该within
方法允许我使用匹配器在 HTML 的某些部分中查找元素。
我可以看到我可以在 DOMSelector 的属性中传递一个字符串byText('Name', {selector: '.name'})
选择器:但这意味着我不能使用 nicebyText
等byTitle
来构建更复杂的选择器,我必须自己将它们实现为普通查询选择器,比如:
而我想使用by*
DOMSelectors 的强大功能来编写:
我是否遗漏了什么,或者这是 Spectator 目前没有的功能?
angular - 如何将模拟库安装到 Angular 的单元测试中?我想将 sinon-chrome 安装到观众测试中
我正在开发一个用 Angular 编写的 Google Chrome 扩展,我需要为使用 Chrome API 的组件编写单元测试。我找到了一个我相信可以完成这项工作的图书馆。
https://www.npmjs.com/package/sinon-chrome
但是,我没有足够的 Angular 经验来知道如何准确地使用该库。用法部分说我需要要求常量中的值,但我不知道该怎么做或去哪里。这会在单元测试中进行吗?karma
文件里有吗?示例global.chrome
中的内容是什么。
我的单元测试的代码。除了这个 chrome mock 问题外,它运行良好。
AppComponent
是铬的地方
谢谢你的帮助。
angular - RxJs:测试依赖于其他可观察对象的可观察对象/
我有一个名为 isSearchEnabled$ 的 observable,它指示搜索表单上的搜索按钮是否可点击。这是可观察的代码:
isSearchEnabled$ = anotherObject.errorSource$.pipe(map((errors) => errors.length === 0);
可以看到,这个 observable 依赖于另一个 observable,它在每次表单验证发生时都会发出一个数组。因此,当数组为空时,isSearchEnabled 发出布尔值 true,否则为 false。
我想测试这个可观察的,但我不确定如何。我应该模拟anotherObject.errorSource$
发出假错误,并检查isSearchEnabled$
返回真还是假?
我应该如何在 Angular/RxJS 中做到这一点?如果有人在旁观者中有解决方案,或者只是常规解决方案,我将不胜感激!
PS.:我知道我应该提供一个工作示例,但我认为这个描述很简单,不需要进一步的代码。
jasmine - 观众/茉莉花更换服务电话
我正在使用ngneat/spectator进行测试,它使用 jasmine。我试图让我注入的服务伪造一个调用和返回值,但真正的服务被调用了。
我像这样创建了工厂:
然后在测试中,我尝试通过模拟服务替换调用。
当我的组件调用postRequest
它不是使用假版本时,它调用的是实际RequestService
方法。
显然,我没有正确地将事情联系起来,但是对于茉莉花和一般测试来说真的很陌生,我不确定是什么。是通过组件的RequestService
构造函数注入的,并且没有明确列为组件的提供者。
angular - 使用 jest 和旁观者的角度测试失败 TypeError: testing.waitForAsync is not a function
我正在使用 Angular CLI:10.2.3 节点:12.22.1 npm:6.14.12
我是角度的新手。我正在尝试使用 jest 来测试角度代码(项目运行良好,没有任何错误,现在在我看到问题的地方添加一些测试)。我有很多自定义服务,所以使用 Spectator 来模拟它们。我的测试很少,其中一个(失败)如下。
一个简单的组件测试如下。
我收到以下错误:
我找不到与此错误相关的任何内容。我没有明确使用 waitForAsync。这里应该是什么问题?
angular - Angular jest spectator 在测试另一个服务时模拟服务依赖
我在用,
角 CLI:10.2.3
节点:12.22.1
该项目构建并运行良好。我现在正在尝试使用 Jest 和 Spectator 添加测试。我有以下服务;我正在尝试运行一个非常基本的测试(可以模拟大多数值)。
在构造函数中,它试图基于另一个自定义服务 ( ) 设置 2 个变量 (this.environmentName
和)。this.environmentUrl
runtimeConfig
我正在尝试使用以下内容进行测试:
这失败并出现错误:
运行时配置如下。我尝试初始化这些值但没有帮助。
如何模拟这些服务及其值,以便让这个基本测试正常工作?