javascript - [vue-test-utils]: wrapper.setChecked() 必须传递一个布尔值
问题描述
使用 Vue,我有一些无线电输入:
<label>
<input
v-model="myProperty"
v-bind:value="true"
name="myProperty"
type="radio"
> True
</label>
<label>
<input
v-model="myProperty"
v-validate="input.rules ? input.rules : ''"
v-bind:value="false"
name="myProperty"
type="radio"
> False
</label>
我正在使用vue-test-utils
and测试它们jest
,我在其中选择并为我的字段分配一个值:
let myProperty = wrapper.find('[name="myProperty"]')
myProperty.setChecked(false)
根据文档,它似乎应该是这样工作的。但我得到这个错误:
[vue-test-utils]: wrapper.setChecked() must be passed a boolean
但是,当我将值设置为true
而不是false
. 作为实验,我尝试将值设置为字符串'false'
:
myProperty.setChecked('false')
然后我得到了这个错误:
[vue-test-utils]: wrapper.setChecked() must be passed a boolean
vue-test-utils
那么当值为时我应该如何选择我想要的无线电输入false
?如果我的无线电输入有值字符串怎么办?
解决方案
您需要调用setChecked
组中的另一个无线电输入。这将取消选中组中的所有其他单选按钮,因为一次只能选中一个:
wrapper.find('[name="other property"]').setChecked(true)
在 Vue Test Utils 中,我们不允许将单选按钮设置checked
为 false,因为这使您可以将单选按钮置于不检查任何选项的状态,尽管这对于用户来说是不可能的。
也许我们应该重新考虑这个设计决定。如果您有用例,请在 Vue Test Utils GitHub 存储库中创建功能请求。
推荐阅读
- c# - C# - 防止在后续点击中调用按钮
- javascript - 如何在文档属性(数组)中查找 ID 并返回该对象的填充信息
- flask - APScheduler 在 Heroku 上托管的 Flask 应用程序中复制作业
- azure - azure front door 多个网站域 ssl 后面的 azure 应用程序网关
- amazon-s3 - 使用 Informatica powercenter 创建 Amazon S3 目标并从 Oracle 源加载数据
- amazon-web-services - AWS sam - 部署具有文件依赖项的应用程序
- r - 使用 mutate(ifelse) 重新编码变量列表
- c - 何时在 C 中使用单指针而不是双指针
- mysql - 如何处理查询 - 显示来自线程的最新评论的最有效方式
- bash - 无法使用 bin/bash 进入容器命名空间