如何在测试中将参数正确传递给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};
我最终被引导到glimmer.js repo中有关此主题的问题。对于遇到此问题的任何人,您可以查看此问题:
https://github.com/glimmerjs/glimmer.js/issues/14
剧透:这是一个相对较老的问题,其中的所有链接(截至本文撰写时)都是兔子洞,其中一些问题因为他们“重新思考”他们正在做什么的方式而被关闭。所以,基本上,仍然不可能干净利落地做到这一点。
我猜这有一种丑陋的方式可以做到这一点,但我对此并不感兴趣,所以我暂时放弃了Glimmer.js,直到测试更好。