首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组件内部的Ember集成测试组件

组件内部的Ember集成测试组件
EN

Stack Overflow用户
提问于 2017-05-20 02:20:31
回答 1查看 89关注 0票数 0

我已经在我的应用程序中安装了ember-bootstrap。然后,我创建了一个登录表单组件。

app/templates/components/login-form.hbs中,有2个引导input和1个button,它们如下所示:

代码语言:javascript
复制
{{#bs-form onSubmit=(action "login") as |form| }}
    {{#form.group validation=emailValidation}}
        <label for="email">Email</label>
        <input id="email" value={{email}} name="email" class="form-control" oninput={{action (mut email) value="target.value"}} type="text" placeholder="Email" required>
    {{/form.group}}
    {{#form.group validation=passwordValidation}}
        <label for="password">Password</label>
        <input id="password" value={{password}} name="password" class="form-control" oninput={{action (mut password) value="target.value"}} type="password" placeholder="Password" required>
    {{/form.group}}
    {{bs-button defaultText="Login" type="primary" buttonType="submit"}}
{{/bs-form}}

当我在组件中进行集成测试时,它似乎无法识别this

代码语言:javascript
复制
test('it renders', function(assert) {
  assert.expect(3);
  assert.equal(this.$('input').attr('name'),'email','has Email');
  assert.equal(this.$('input').attr('name'),'password','has Password');
  assert.equal(this.$('button').text(),'Login','has Login');
});

input中,我得到了undefined结果。在引导中调用form.group组件输入的正确方法是什么,用于组件测试?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-20 06:23:26

我相信您忘了在测试中呈现组件;也就是说,您需要添加以下内容:

代码语言:javascript
复制
this.render(hbs`{{login-form}}`);

在断言任何事情之前。您还需要更改第二个断言,以断言组件中的第二个输入。无论如何,我已经复制了您的组件,并在下面的转盘中更正了您的测试。希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44081296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档