问题描述
我有一个组件:
<div *ngFor="let condition of formArray.controls as FormGroup; let i = index">
<div [formGroup]="formArray.controls[i]">
<div formGroupName="operation>
<custom-select formControlName="name" permission="write">
</custom-select>
</div>
</div>
这在应用程序分层运行时正常工作(我删除了一些不必要的代码)。 (因此,我使用自定义选择而不是标准选择。)
我想做的是对组件进行测试。当使用标准选择测试通过时,但是由于某些原因(我无法控制它),我想在测试中使用该组件。问题是我需要代替。所以我做到了:
import {Component,EventEmitter,Input,Output} from '@angular/core';
import {FormControl,FormGroup,ControlValueAccessor} from '@angular/forms';
@Component({
selector: 'custom-select',template: `
<input [formControl]="name">
`
})
export class SelectSetupMock implements ControlValueAccessor{
name = new FormControl();
writeValue(obj: any): void {
throw new Error('Method not implemented.');
}
registerOnChange(fn: any): void {
throw new Error('Method not implemented.');
}
registerOnTouched(fn: any): void {
throw new Error('Method not implemented.');
}
setDisabledState?(isDisabled: boolean): void {
throw new Error('Method not implemented.');
}
}
在测试中,我声明此存根并使用SelectSetupMock组件。但是失败了:
Error: No value accessor for form control with path: 'operation -> name'
您是否知道我的方法是否有效以及如何实现?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)