问题标签 [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 - 角度观众模拟 Observable
我正在尝试使用https://github.com/ngneat/spectator编写一个(相当)复杂的测试 我有一个组件,它在ngOnInit中有 3 个 http 服务。
其中两个很容易模拟,我可以通过两种方式(我认为):
或者
问题是,我有另一项服务不像其他两项那样工作。该服务如下所示:
我需要模拟的部分是 public property category。我不知道如何去嘲笑它。有谁有想法吗?
这是我正在测试的组件的ngOnInit方法:
angular - 带有旁观者的角度单元测试 - 模块“DynamicTestModule”导入的意外值“FormBuilder”。请添加@NgModule 注释
我想使用旁观者来帮助我进行单元测试,因为我已经阅读了有关它的精彩内容。但是我不确定如何解决我的测试问题。在我的组件模板中,我有一个formGroup
这样的......
在我的 TS 文件中,我的ngOnInit
/ constructor
...
所以我需要模拟我的服务和导入,所以这是我的 spec.ts 文件......我减少了一些代码以提高可读性:
当我运行测试时,出现以下错误:
错误:模块“DynamicTestModule”导入了意外的值“FormBuilder”。请添加 @NgModule 注释。
现在我可以用它CUSTOM_ELEMENTS_SCHEMA
来防止错误,但这似乎是错误的。谁能告诉我如何解决我的问题。
angular - 带旁观者的模拟 Angular 路由器
我正在使用Spectator编写我的 Angular 8 测试并使用Jest来运行它们。我是前端单元测试的新手,所以我可能忽略了一些简单的事情;欢迎任何想法。
我有以下方法(在 Typescript 中),它根据当前 URL 是否与一组路径匹配(不包括 queryParams 和片段)返回一个布尔值:
和
我现在想用 Spectator 编写测试,它将根据几个可能的 url 验证布尔返回值。在Java中,我会Router
用一个模拟对象来模拟并执行以下操作:
我如何创建一个模拟Router
?以及如何定义返回值this.router.parseUrl(this.router.url).root.children['primary']
?
这是我目前拥有的:
我知道它createRoutingFactory
提供了ActivatedRouteStub
开箱即用的东西,但我无法用它做任何有意义的事情。
PS:我将业力添加为标签,因为它可能具有相同的解决方案,但如果我错了,请纠正我。
angular - 观众角度测试 - 在 ngOnInit 之前传递输入
我正在使用Spectator编写我的 Angular 8 测试并使用Jest来运行它们。根据自述文件,我可以setInput()
用来将我的值分配给该字段的名称,这很有效。问题是在创建组件后正在验证输入,但在此之前我需要它,因为我在我的ngOnInit
方法中使用它进行初始化:
和
旁观者将正确设置 queryParampage
和 Input items
,但前提是组件已经创建。在组件创建期间,将使用和ngOnInit
进行初始化。page == 1
items == []
我可以在每个方法中创建旁观者组件并分别传递 queryParams,但我找不到在createRoutingFactory
参数中传递输入的方法。
或者,我可以使用主机组件工厂来传递我的输入参数,但是我失去了传递我相信的查询参数的能力。
angular - Angular Spectator 测试 ErrorHandler HttpErrorResponse
总结问题:
我想用 Spectator 和 Jest 测试我的自定义 ErrorHandler。我希望通过一个简单的测试,其中一个特定的方法handleFailFastError
被调用一次以获取HttpErrorResponse
状态代码500
。实际结果是在另一个方法中HttpErrorResponse
被处理。TypeError
描述您尝试过的内容:
我检查了我是否在方法内,是的,我在。检查console.log
电话并打印出错误。它是一个{castToWriteable: [Function]}
对象。因此,我检查它是否是一个实例的HttpErrorResponse
条件失败了,并且我的 handleError 将响应作为 TypeError 处理。在这个例子上定位我自己。还检查了这个stackoverflow条目。
显示一些代码 ErrorHandler:
到目前为止,我使用旁观者和笑话进行的测试:
angular - 如何在 ActivatedRoute 上设置数据以进行观众测试?
有人知道如何使用 Spectator 测试组件中已解析的路由数据吗?在我的组件代码中,我获取 Todo 数组数据并将其设置为材料表的 dataSource。我想测试一下,如果我使用 Todo() 存根 ActivatedRoute,它将填充我的数据源。
我无法让这个测试工作。我尝试了多种设置 route.data 的方法。在线示例都没有具体说明如何以这种方式测试路由。
有任何想法吗?
组件代码
angular - 集成测试 ReactiveForm,valueChanges 方法未触发
我用 Spectator 测试一个组件,其中包含 ngInit
querySuggestion$ observable 通过异步管道绑定。我的问题是我尝试做一个集成测试,如果 getSuggestion 方法被正确调用,它可以触发我的 searchControl 和查看。
该代码tap(value => console.log(value))
从未被调用,我的测试在返回 0 的 haveBeenCalled 上失败。
角度版本
:8.2.10 笑话:24.9.0
angular - Angular 测试:没有管理依赖项
我是 angular 8 的新手。我写了一些组件,现在我正在编写测试(但是旁观者,但它不介意)。
我想写简单的测试,只检查组件是否创建成功。
我发现依赖项管理很糟糕,我花了 10 倍的时间来查找所需的依赖项,而不是编写测试。
真的没有办法避免吗?一个可以为我们管理它的图书馆?还是默认注入所有依赖项?
谢谢。
编辑1:事情是我使用材料,这需要很多依赖。作为我要测试的组件的依赖关系的示例:
angular - 出现错误:模块“DynamicTestModule”使用 jest+spectator angular 9 声明的意外值“未定义”
我正在使用 Angular 9 并在深入研究后将 angular 的默认单元测试替换为旁观者和开玩笑,这很有趣,而且我几乎没有可以正常工作的测试,但是在尝试测试某些父组件时突然出现了这个问题,导致了丑陋的错误(看问题标题)我不知道如何解决,很高兴得到一些帮助,代码如下
其他类似的测试正在工作,但是即使我删除了模板的所有标记并只写了愚蠢的 div,并且取消了对测试的模拟,我仍然得到这个无赖...尝试重新启动服务器没有帮助。
规格
组件.ts
组件.html
unit-testing - TypeError: testing.TestBed.inject is not a function ( jestjs with spectator )
运行一项测试时出现此错误。我使用 jestjs 和旁观者来测试我的角度服务