问题标签 [angular-unit-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.
angular - 角度单元测试:无法解析组件的所有参数
好的,所以我一直在尝试解决这个问题,而我在网上可以找到的所有内容(关于标题中的错误消息)都指的是 DI 期间的循环依赖关系——但我 99% 确定这不是我的问题.
所以,这里是 - 运行测试时出现以下错误:
组件 CTOR:
测试代码:
我试过剥离测试模块设置并根据测试运行器的要求添加东西,只有当我添加模拟AssetGalleryService
作为最后一位时,错误才会开始抛出。
如您所见,我已经模拟了所有依赖项,因为测试的当前状态不需要服务中的任何内容。
没有桶进口(我读过这也可能导致这个问题)
只有“两次”AssetGalleryService
导入的是在测试文件和组件文件中都导入的东西。如果我在测试文件中切换导入顺序,我会收到以下错误:
这可能与我正在运行混合应用程序这一事实有关?该组件的 2 个服务是 AngularJS 服务。
编辑:如果我添加forwardRef(() => ... )
到@Inject(AssetGalleryService)...
组件 CTOR 中,运行测试时会出现与上述相同的错误。
非常欢迎任何提示!
angular - Angular CLI 为已经存在的组件创建 .spec 文件
有一个选项.angular-cli.json
可以禁用自动创建*.spec
文件,例如组件,请参阅json schema。
这是一个非常好的功能,因为个人(这只是我的观点)测试组件可能不是在快速增长的项目中真正值得的事情。
但是有时我希望有一个选项来*.spec
为已经存在的组件/服务/管道/任何东西生成/重新创建相应的文件。
这可能使用一些命令行调用吗?
创建了一个功能请求,让我们看看它是如何进行的......
angular - 使用 ngModelChange 对 Angular 指令进行单元测试
我有一个PhoneMask 指令,我将其应用于输入,它将去除非数字字符并根据我设置的掩码格式化数字(例如,输入1234567890
将被格式化为(123) 456-7890
)。掩码本身有效,但我想为它编写一个单元测试,但我在弄清楚如何做到这一点时遇到了问题。
电话掩码指令:
PhoneMask 测试/规格:
在测试中,我期望输入 ofbob123
会产生(123)
. 但是,当我运行测试时,我得到一个失败的结果Expected 'bob123' to equal '(123)'.
。
我尝试了async
, fakeAsync
, 以及detectChanges()
andtick()
调用的各种组合,甚至用setTimeout()
. 输入的 valueAccessor 更新后如何访问模型的值?
angular - 角鼠标进入单元测试不起作用
我正在尝试在 Angular 4 业力单元测试中测试鼠标输入,没有错误但鼠标输入没有调用绑定到鼠标输入事件的方法。
在组件类中,我调用以下方法
测试鼠标输入:
在我的测试中,我试图调用鼠标输入事件,但预期的结果不匹配。当我看到代码覆盖率时,甚至没有调用该方法。
有什么想法吗?
angular - 模拟角度服务类属性或变量
我正在对 Angular 应用程序进行单元测试,并且需要模拟一项服务。我能够毫无问题地模拟服务方法,但是当我尝试以同样的方式模拟属性时,它给了我错误
我的配置服务有一个属性和一个方法,我想模拟该属性,因为我无法生成该值。
服务
在角度测试中模拟服务
当我这样做时,它给了我错误。
angular - 为什么测试失败
尝试在此处测试 http get 服务但测试失败。为什么它不起作用。我已经提供了所有依赖项和所有内容,但它仍然给出未定义的响应
当我运行业力测试运行器时,测试未能给出以下错误
HttpGetService should get courseList
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL
HttpGetService should get courseList async
Expected undefined to be 4
// Http 获取服务规范测试文件
// Http服务
angular - 如何在使用茉莉花的单元测试角度类中将http注入类构造函数?
我有一个名为 logPublisher 的抽象类。下面是代码:
LogWebApi 类扩展了 LogPublisher:
现在在我对 LogWebApi 类的单元测试中,我将如何注入“http”?我正在使用 jasmine 编写单元测试。
任何代码片段都会有所帮助。
提前致谢。
angular - Angular 4/5 单元测试用例 .toBe in Services
我正在尝试编写用于调用服务并从 HTTP 获取响应的测试用例。参考
现在问题如下:
expect(data.length).toBe(12);
即使data.length
是 100,此代码也不会引发任何异常
样本数据服务.ts
app.component.spec.ts
angular - 使用(提交)时角度单元测试失败
使用 Angular v4.4.4,我正在使用元素(submit)
上的事件保存表单。<form>
在实时代码上,一切正常。但是,在单元测试中单击 a<button>
不会触发(submit)
并且测试失败。例如,
组件(伪代码):
单元测试(伪代码):
我确定问题出在(submit)
事件上,因为如果我删除它并将onSave()
调用移动到(click)
按钮上的 a ,则单元测试确实有效。
所以这在单元测试中失败了:
但这成功了:
我在规范中做错了什么?
angularjs - 如何使用 ajax 服务实现 Angular JS 控制器的单元测试?
我试图为下面的代码编写单元测试,但我无法实现它。
服务代码:
控制器代码
单元测试代码:
当我运行上述测试用例时,出现以下错误
TypeError: undefined is not an object (评估 'PersonService.Person().then(')
任何人都可以提供解决此问题的解决方案吗?