2

如何在测试中正确地将参数传递给 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,直到测试更好。

4

0 回答 0