问题标签 [testbed]

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 投票
2 回答
6853 浏览

angular - Angular TestBed:无法绑定到“ngModel”,因为它不是“ng-select”的已知属性

我正在尝试使用 TestBed from 来测试一个在其 HTML 中具有 ng-select 的 Angular 组件。我首先收到错误消息说不能绑定到“项目”,因为它不是“ng-select”的已知属性。所以我已经导入了 NgSelectModule 并将其添加到 TestBed 配置中的导入中。它现在返回Can't bind to 'ngModel' 因为它不是 'ng-select' 的已知属性

0 投票
1 回答
93 浏览

javascript - 单元测试 angular 2(ionic 2) 自定义指令

我在我的离子应用程序中为文本屏蔽做了一个自定义指令。该指令用于电话号码的输入文本屏蔽。它用于ngControl获取和设置输入字段的值。

我尝试了很多方法来测试它,但我无法设置该值。我能够ngControl通过导入FormsModule并绑定输入来获得。

但我仍然无法获得价值this.ngControl.control.value。当我在输入字段中输入时,它工作正常但无法定义测试用例。

这是测试用例片段

这是我的测试组件:

我想写一个这样的测试用例expect(element.value).toEqual('(999)-999-9999。我该如何测试它?

0 投票
1 回答
6283 浏览

angular - : 找不到对象来监视 login() - Angular TestBed

我正在尝试为名为 Login.Component.ts 的组件之一编写单元测试,其代码如下所示。我尝试了各种方法,但无法获得成功的响应。在解释组件和服务代码之前,我想知道——

  1. TestBed– 我的理解是,测试平台在角度启动和设置所有样板代码(测试所需,如创建视图、初始化和注入服务、创建路由器以及所有这些仅用于测试环境),我们需要做的就是编写一些像下面这样的最小代码 -</p>

    });

但看起来我的理解是错误的,因为组件和身份验证服务看起来不像我收到的错误中的对象 -</p>

Login.Component.ts -

身份验证.service.ts

approutes.module.ts

写作测试-

方法 1 -

错误-

方法 2 – 当我考虑使用 TestBed 并假设它会处理所有事情时,

错误-

不知道我在这里做错了什么。我搞砸了吗?

方法 3 - 不知何故似乎有效,不确定我做了什么不同。然而,我无法弄清楚如何在下面的第二个测试中测试组件的错误路径,即断言一些错误消息或其他东西。

0 投票
3 回答
9804 浏览

angular - 如何为 Resolve 编写测试

我想为我的服务编写测试,我想确保参数发送正常。我该如何测试

0 投票
0 回答
197 浏览

angularjs - 在 Angular 中使用升级的 AngularJS 组件,在测试时给出错误:[$injector:unpr] Unknown provider

我已将 AngularJS 组件“contactBox”升级为“contactBoxDirective”并在 Angular 组件“personInfo”中使用。

但是,在使用 TestBed 运行测试用例时,我总是遇到错误

错误:[$injector:unpr] 未知提供者:contactBoxDirectiveProvider <-contactBoxDirective http://errors.angularjs.org/1.6.9/53) 在contactBoxDirective.UpgradeComponent (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188.browserify:116364:23) 在新的contactBoxDirective (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea33a7a188.browserify: :23) 在 createClass (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188.browserify:93137:20) 预计未定义是真实的。在用户上下文。(C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188.browserify:2400:27) 在 ZoneDelegate.invoke (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188.browserify:246922:26) atProxyZoneSpec .onInvoke (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188.browserify:246437:39) 在 ZoneDelegate.invoke (C:/Users/user/AppData/Local/Temp/3ac750590575e0af0efa9c7ea3a7a188)。

测试代码 -

0 投票
1 回答
4270 浏览

angular - ng2-translate:无法在 TranslatePipe.transform 读取未定义的属性“订阅”

我在我的 Angular 5 项目中使用 ng2-translate,我正在尝试为一个组件创建一个单元测试。我总是TranslateModule.forRoot( *...* )在我的测试中导入,测试将在我的视图中使用翻译管道工作。

但是,在两种情况下,在单元测试期间会引发上述错误:我看不出与其他工作测试有任何区别。

× 应该创建 (44ms) TypeError: Cannot read property 'subscribe' of undefined at TranslatePipe.transform (webpack:///./node_modules/ng2-translate/src/translate.pipe.js?:74:75) at Object. eval [as updateRenderer] (ng:///DynamicTestModule/MyComponent.ngfactory.js:127:70) 在 Object.debugUpdateRenderer [as updateRenderer] (webpack:///./node_modules/@angular/core/esm5/core. js?:14951:21) 在 checkAndUpdateView (webpack:///./node_modules/@angular/core/esm5/core.js?:14065:14)

为什么会发生这种情况?我不使用 TranslateService,但我使用模板中的管道。有没有人遇到同样的问题?

0 投票
2 回答
1428 浏览

angular - 使用 TestBed 进行单元测试(?)一个 Angular 6 组件

使用 时TestBed,您真的是在对组件进行单元测试还是在进行集成测试?

创建一个夹具(TestBed.createComponent(AppComponent))并fixture.detectChanges()自动调用调用ngOnInit。如果您想测试另一种方法,您现在正在测试多个单元。

这就引出了另一个问题:您应该测试单元,还是测试用户操作?例如,您是否应该测试该方法setDimensions,或者您是否应该测试当用户单击某个按钮时,元素是否具有适当的尺寸等。

我猜第一种测试方式会更接近“单元测试”方式,但是你仍然必须处理被调用组件的生命周期方法。这让我觉得没有办法使用TestBed. 存根所有生命周期方法似乎很荒谬。

无论您决定测试哪种方式,都应该测试 DOM,不是吗?然后,您不会通过包含 DOM api 进行孤立测试。

0 投票
1 回答
10902 浏览

angular - “emit”类型的参数不能分配给“never”类型的参数

我需要在 Angular 中测试一个只有一种方法和某些 @Input 和 @Output 属性的组件-

还有另一个组件具有应该调用上述方法的方法。调用,因为它正在发出一个事件,该事件将被另一个我相信的事件消耗,而该事件又会发出另一个事件,该事件被另一个组件中的第三个事件消耗 -

我正在尝试测试 updateColumns 但不知怎么做?是否可以模拟 applyChanges 依次发送到 updateColumns 并且我们可以检查相同的值?

如果我尝试 -

得到错误 -

0 投票
2 回答
3673 浏览

angular - Angular2+ 测试用例显示 No provider for NgControl

我正在尝试测试一个具有很多依赖关系的角度组件。但是测试用例 expect(component).toBeTruthy(); 失败并出现错误:NgControl 没有提供程序。完整的错误消息如下:

我已经包含了 FormsModule 和 RouterTestingModule 之类的东西,但它仍然不起作用。

所以我显然错过了一些模块,但是哪一个?我对角度测试台相当陌生。

角度版本:5.2 业力版本:2.0.2 业力茉莉版本:1.1.1

哦,它可能是那个的副本,但是由于在我添加的建议之后这个问题没有得到答复,所以我认为没关系。:S Angular2 测试用例显示 No provider for NgControl

0 投票
1 回答
2451 浏览

angular - Jasmine 无法识别 Angular 的 DomSanitizer

我正在使用 Jasmine 对 Angular 5 应用程序进行单元测试。我到了需要测试一个依赖于的函数的地步DomSanitizer

我验证了这个函数可以完美运行,这意味着它DomSanitizer已经在构造函数中并且它的语法是正确的。

我的单元测试如下:

此外,DomSanitizer是的一部分TestBed providers

然而,Jasmine 在对函数进行单元测试时抛出了这个错误:

有任何想法吗?

谢谢!