我正在尝试测试要使用的自定义对话框组件,aurelia-dialog
该组件通过方法获取它的属性绑定activate()
。为了测试组件,我正在使用一个<compose>
元素设置测试,该元素也使用如下activate()
方法:
beforeEach(() => {
component = StageComponent
.withResources('path/to/dialogComponent')
.inView(`<compose view-model="path/to/dialogComponent" model.bind="mockModel">
</compose>`)
.boundTo(mockModel);
});
但是,当我来测试绑定属性的视图模型时,我得到一个空值,而实际视图模型曾经是。
describe('#someComponentMethod()', () => {
it('Should exist', done => {
// In the past, I succesfully accessed child viewModels for
// compose through the following property, after a general package update,
// this seems not to work anymore
let viewModel = component.viewModel.currentViewModel
expect(viewModel.someComponentMethod).toBeDefined();
// ==> Runtime error, since currentViewModel === null
done();
});
});
是否有已知或更好的方法来测试没有可绑定属性但依赖模型绑定的自定义元素activate()
?
此外,为了测试渲染:似乎有一个可能相关的类似问题:Aurelia Testing Composed Custom Element