【发布时间】:2019-06-28 00:43:05
【问题描述】:
我有一个 LoginCard 组件,它使用 Buefy's b-input 组件来呈现电子邮件和密码输入:
<b-field label="Email">
<b-input
v-model="email"
type="email"
placeholder="Your email"
required
>
</b-input>
</b-field>
<b-field label="Password">
<b-input
v-model="password"
type="password"
password-reveal
placeholder="Your password"
required
>
</b-input>
</b-field>
在我的测试中,我想使用类似vue-test-utilssetValue 的方法在输入上设置一个值,触发该输入,并让它传播到我的data 模型属性email 和@987654329 @。
wrapper.find('input[type="email"]').setValue('test@example.com');
wrapper.find('input[type="password"]').setValue('password');
但这不起作用,值不会被传播。
【问题讨论】:
-
您的测试似乎正在验证
b-input将输入值传播到v-model。假设这是一个单元测试,那么验证似乎超出了范围。如果您只打算设置email和password,则可以直接初始化它们(通过wrapper.vm或安装选项的propsData)。 -
我的测试是验证如果用户在表单中输入他们的电子邮件和密码并提交表单,则使用该数据调用
loginWith方法。这感觉就像一个单元测试,因为输入是用户名和密码。目前我正在使用setData对其进行测试,但这感觉不对——感觉相当于在类上手动设置实例变量而不是使用类的api。
标签: vue.js vue-test-utils buefy