问题标签 [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.
angular - Angular TestBed:无法绑定到“ngModel”,因为它不是“ng-select”的已知属性
我正在尝试使用 TestBed from 来测试一个在其 HTML 中具有 ng-select 的 Angular 组件。我首先收到错误消息说不能绑定到“项目”,因为它不是“ng-select”的已知属性。所以我已经导入了 NgSelectModule 并将其添加到 TestBed 配置中的导入中。它现在返回Can't bind to 'ngModel' 因为它不是 'ng-select' 的已知属性
javascript - 单元测试 angular 2(ionic 2) 自定义指令
我在我的离子应用程序中为文本屏蔽做了一个自定义指令。该指令用于电话号码的输入文本屏蔽。它用于ngControl
获取和设置输入字段的值。
我尝试了很多方法来测试它,但我无法设置该值。我能够ngControl
通过导入FormsModule
并绑定输入来获得。
但我仍然无法获得价值this.ngControl.control.value
。当我在输入字段中输入时,它工作正常但无法定义测试用例。
这是测试用例片段
这是我的测试组件:
我想写一个这样的测试用例expect(element.value).toEqual('(999)-999-9999
。我该如何测试它?
angular - : 找不到对象来监视 login() - Angular TestBed
我正在尝试为名为 Login.Component.ts 的组件之一编写单元测试,其代码如下所示。我尝试了各种方法,但无法获得成功的响应。在解释组件和服务代码之前,我想知道——
TestBed
– 我的理解是,测试平台在角度启动和设置所有样板代码(测试所需,如创建视图、初始化和注入服务、创建路由器以及所有这些仅用于测试环境),我们需要做的就是编写一些像下面这样的最小代码 -</p>});
但看起来我的理解是错误的,因为组件和身份验证服务看起来不像我收到的错误中的对象 -</p>
Login.Component.ts -
身份验证.service.ts
approutes.module.ts
写作测试-
方法 1 -
错误-
方法 2 – 当我考虑使用 TestBed 并假设它会处理所有事情时,
错误-
和
不知道我在这里做错了什么。我搞砸了吗?
方法 3 - 不知何故似乎有效,不确定我做了什么不同。然而,我无法弄清楚如何在下面的第二个测试中测试组件的错误路径,即断言一些错误消息或其他东西。
angular - 如何为 Resolve 编写测试
我想为我的服务编写测试,我想确保参数发送正常。我该如何测试
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)。
测试代码 -
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,但我使用模板中的管道。有没有人遇到同样的问题?
angular - 使用 TestBed 进行单元测试(?)一个 Angular 6 组件
使用 时TestBed
,您真的是在对组件进行单元测试还是在进行集成测试?
创建一个夹具(TestBed.createComponent(AppComponent)
)并fixture.detectChanges()
自动调用调用ngOnInit
。如果您想测试另一种方法,您现在正在测试多个单元。
这就引出了另一个问题:您应该测试单元,还是测试用户操作?例如,您是否应该测试该方法setDimensions
,或者您是否应该测试当用户单击某个按钮时,元素是否具有适当的尺寸等。
我猜第一种测试方式会更接近“单元测试”方式,但是你仍然必须处理被调用组件的生命周期方法。这让我觉得没有办法使用TestBed
. 存根所有生命周期方法似乎很荒谬。
无论您决定测试哪种方式,都应该测试 DOM,不是吗?然后,您不会通过包含 DOM api 进行孤立测试。
angular - “emit”类型的参数不能分配给“never”类型的参数
我需要在 Angular 中测试一个只有一种方法和某些 @Input 和 @Output 属性的组件-
还有另一个组件具有应该调用上述方法的方法。调用,因为它正在发出一个事件,该事件将被另一个我相信的事件消耗,而该事件又会发出另一个事件,该事件被另一个组件中的第三个事件消耗 -
我正在尝试测试 updateColumns 但不知怎么做?是否可以模拟 applyChanges 依次发送到 updateColumns 并且我们可以检查相同的值?
如果我尝试 -
得到错误 -
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
angular - Jasmine 无法识别 Angular 的 DomSanitizer
我正在使用 Jasmine 对 Angular 5 应用程序进行单元测试。我到了需要测试一个依赖于的函数的地步DomSanitizer
:
我验证了这个函数可以完美运行,这意味着它DomSanitizer
已经在构造函数中并且它的语法是正确的。
我的单元测试如下:
此外,DomSanitizer
是的一部分TestBed
providers
:
然而,Jasmine 在对函数进行单元测试时抛出了这个错误:
有任何想法吗?
谢谢!