如何在测试中正确地将参数传递给 glimmer.js 组件?
例如,我有一个接受@story
作为参数的组件,我将故事对象传递给该组件。它实际上在代码中运行良好,但我正在尝试学习如何测试 Glimmer 组件,但我找不到任何关于在测试环境中传递参数的文档。
我尝试了以下方法,它显然不起作用,但我关闭了吗?
test('it displays args', async function(assert) {
const storySample = {as_a: 'person', i_want: 'happiness', so_that: 'I can be happy'};
await this.render(hbs`<StoryViewer @story={{theStory}} />`, {theStory: storySample});
assert.equal(this.containerElement.textContent.trim(),
'As a person I want happiness so that I can be happy');
});
更新
不起作用的新事物:
await this.render(hbs`<StoryViewer @story={{theStory}} />`);
this.args = {'theStory': storySample};
await this.render(hbs`<StoryViewer />`);
this.args = {'story': storySample};
await this.render(hbs`<StoryViewer />`);
this.args = {'@story': storySample};
2018 年 1 月 5 日更新
我最终在 glimmer.js 存储库中被引导到一个关于这个主题的问题。对于遇到此问题的任何人,您可以查看此问题:
https://github.com/glimmerjs/glimmer.js/issues/14
剧透:这是一个比较老的问题,其中的所有链接(在撰写本文时)都是兔子洞,其中一些问题被关闭了,因为他们正在“重新思考”他们做事的方式。所以,基本上,仍然不可能干净地做到这一点。
我猜测有某种丑陋的方法可以做到这一点,但我对此不感兴趣,所以我暂时放弃了 Glimmer.js,直到测试更好。