问题标签 [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.

0 投票
0 回答
1883 浏览

angular - 角度单元测试:无法解析组件的所有参数

好的,所以我一直在尝试解决这个问题,而我在网上可以找到的所有内容(关于标题中的错误消息)都指的是 DI 期间的循环依赖关系——但我 99% 确定这不是我的问题.

所以,这里是 - 运行测试时出现以下错误:

组件 CTOR:

测试代码:

我试过剥离测试模块设置并根据测试运行器的要求添加东西,只有当我添加模拟AssetGalleryService作为最后一位时,错误才会开始抛出。

如您所见,我已经模拟了所有依赖项,因为测试的当前状态不需要服务中的任何内容。

没有桶进口(我读过这也可能导致这个问题)

只有“两次”AssetGalleryService导入的是在测试文件和组件文件中都导入的东西。如果我在测试文件中切换导入顺序,我会收到以下错误:

这可能与我正在运行混合应用程序这一事实有关?该组件的 2 个服务是 AngularJS 服务。

编辑:如果我添加forwardRef(() => ... )@Inject(AssetGalleryService)...组件 CTOR 中,运行测试时会出现与上述相同的错误。

非常欢迎任何提示!

0 投票
6 回答
50705 浏览

angular - Angular CLI 为已经存在的组件创建 .spec 文件

有一个选项.angular-cli.json可以禁用自动创建*.spec文件,例如组件,请参阅json schema

这是一个非常好的功能,因为个人(这只是我的观点)测试组件可能不是在快速增长的项目中真正值得的事情。

但是有时我希望有一个选项来*.spec为已经存在的组件/服务/管道/任何东西生成/重新创建相应的文件。

这可能使用一些命令行调用吗?

创建了一个功能请求,让我们看看它是如何进行的......

0 投票
0 回答
1332 浏览

angular - 使用 ngModelChange 对 Angular 指令进行单元测试

我有一个PhoneMask 指令,我将其应用于输入,它将去除非数字字符并根据我设置的掩码格式化数字(例如,输入1234567890将被格式化为(123) 456-7890)。掩码本身有效,但我想为它编写一个单元测试,但我在弄清楚如何做到这一点时遇到了问题。

电话掩码指令:

PhoneMask 测试/规格:

在测试中,我期望输入 ofbob123会产生(123). 但是,当我运行测试时,我得到一个失败的结果Expected 'bob123' to equal '(123)'.

我尝试了async, fakeAsync, 以及detectChanges()andtick()调用的各种组合,甚至用setTimeout(). 输入的 valueAccessor 更新后如何访问模型的值?

0 投票
1 回答
2256 浏览

angular - 角鼠标进入单元测试不起作用

我正在尝试在 Angular 4 业力单元测试中测试鼠标输入,没有错误但鼠标输入没有调用绑定到鼠标输入事件的方法。

在组件类中,我调用以下方法

测试鼠标输入:

在我的测试中,我试图调用鼠标输入事件,但预期的结果不匹配。当我看到代码覆盖率时,甚至没有调用该方法。

有什么想法吗?

0 投票
1 回答
6938 浏览

angular - 模拟角度服务类属性或变量

我正在对 Angular 应用程序进行单元测试,并且需要模拟一项服务。我能够毫无问题地模拟服务方法,但是当我尝试以同样的方式模拟属性时,它给了我错误

我的配置服务有一个属性和一个方法,我想模​​拟该属性,因为我无法生成该值。

服务

在角度测试中模拟服务

当我这样做时,它给了我错误。

0 投票
1 回答
124 浏览

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服务

0 投票
1 回答
763 浏览

angular - 如何在使用茉莉花的单元测试角度类中将http注入类构造函数?

我有一个名为 logPublisher 的抽象类。下面是代码:

LogWebApi 类扩展了 LogPublisher:

现在在我对 LogWebApi 类的单元测试中,我将如何注入“http”?我正在使用 jasmine 编写单元测试。

任何代码片段都会有所帮助。

提前致谢。

0 投票
1 回答
670 浏览

angular - Angular 4/5 单元测试用例 .toBe in Services

我正在尝试编写用于调用服务并从 HTTP 获取响应的测试用例。参考

现在问题如下:

expect(data.length).toBe(12);即使data.length是 100,此代码也不会引发任何异常

样本数据服务.ts

app.component.spec.ts

0 投票
1 回答
2245 浏览

angular - 使用(提交)时角度单元测试失败

使用 Angular v4.4.4,我正在使用元素(submit)上的事件保存表单。<form>在实时代码上,一切正常。但是,在单元测试中单击 a<button>不会触发(submit)并且测试失败。例如,

组件(伪代码):

单元测试(伪代码):

我确定问题出在(submit)事件上,因为如果我删除它并将onSave()调用移动到(click)按钮上的 a ,则单元测试确实有效。

所以这在单元测试中失败了:

但这成功了:

我在规范中做错了什么?

0 投票
1 回答
52 浏览

angularjs - 如何使用 ajax 服务实现 Angular JS 控制器的单元测试?

我试图为下面的代码编写单元测试,但我无法实现它。

服务代码:

控制器代码

单元测试代码:

当我运行上述测试用例时,出现以下错误

TypeError: undefined is not an object (评估 'PersonService.Person().then(')

任何人都可以提供解决此问题的解决方案吗?