我想测试实现ControlValueAccessor接口的组件是否允许在我的自定义组件中使用[(ngModel)]
,但问题是通常的输入是正确的,但ngModel
-未定义
。下面是代码示例:
@Component({
template: `
<custom-component
[usualInput]="usualInput"
[(ngModel)]="modelValue"
></custom-component>`
})
class TestHostComponent {
usualInput: number = 1;
modelValue: number = 2;
}
describe('Component test', () => {
let component: TestHostComponent;
let fixture: ComponentFixture<TestHostComponent>;
let de: DebugElement;
let customComponent: DebugElement;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
CustomComponent,
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
}));
});
因此,我希望customComponent中的usualInput Input()值等于1(确实如此),ngModel值等于2,但ngModel=未定义,调试后我知道ControlValueAccessor writeValue方法不会在测试环境中调用(但它对浏览器是正确的)。那我该怎么修好它呢?
在ControlValueAccessor
组件中,您不能访问NGModel
,除非您插入了它并采取了一些技巧来避免循环依赖。
ControlValueAccessor
具有WriteValue
方法,该方法在更新控件时从控件接收值-如果需要,可以将该值存储在组件中,然后测试它。
问题内容: 如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。 问题答案:
英文原文:http://emberjs.com/guides/testing/testing-components/ 单元测试方案和计算属性与之前单元测试基础中说明的相同,因为Ember.Component集成自Ember.Object。 设置 在测试组件之前,需要确定测试应用的div已经加到测试的html文件中: 1 2 <!-- as of time writing, ID attribut
视频很卡,播放不了,缓冲区突然很大,推流上不来,都有可能是带宽过低,SRS支持测试客户端到服务器的带宽。 SRS配置 SRS配置一般是单独加一个vhost支持测速。SRS的配置conf/bandwidth.conf。譬如: listen 1935; vhost __defaultVhost__ { } vhost bandcheck.srs.com {
我一直在设置一些合约JUnit 4测试(遵循回答这个问题的建议) - 例如,如果我有一个接口(我已经在示例中包含了泛型,因为我在我的项目中使用它们) - 但是,这是一个大大简化的示例: 我可以创建一个抽象的合同测试,例如: ...并为每个实现扩展此抽象测试类(我使用。我还将一些变量传递给抽象测试类,以测试接口的实现。 然而,实际上,一些接口返回的对象是其他接口的实现,我希望能够使用该接口的抽象契约