我有这个测试。
test('Can registerFormListener', () => {
const spy = jest.spyOn(wrapper.vm, "registerFormListener");
wrapper.vm.registerFormListener();
expect(spy).toBeCalled();
});
这是在监视此功能。
registerFormListener: function () {
oiService.initFormValidation(selection);
}
这称为验证功能。
static initFormValidation(selection: string, () => void) {
$(selector).validate({
rules: {
email: {
required: false,
email: true
},
},
messages: {
email: {
required: "Please enter an email"
},
},
submitHandler: function() {
onSubmit != null ? onSubmit() : null;
}
});
}
但是,Jest没有使用此函数中的任何jQuery。我收到错误TypeError: $(...).validate is not a function
。
我在package.json中安装了jQuery,但是要让Jest拿起它,我必须添加一个setup-jest.js文件,并告诉它拾取我们使用的所有全局变量。
我还必须将这个以及所有其他jQuery函数添加到这个setup-jest文件中,以使其获取验证函数吗?还是有其他解决方案?
答案 0 :(得分:0)
无法评论Jest内容,但是$('.foo').validate()
不是本机jQuery方法。它需要jQuery validation plugin(或者也许是其他带有validate()
方法的插件,但这是我最常看到的插件)。
您是否在项目中安装了jquery-validation
?
答案 1 :(得分:0)
要使用jQuery验证,请在测试中将其导入
4string
您还需要在setup-jest.js中使用jQuery
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal":"*",
"Action":[
"s3:GetObject",
"s3:PutObject"
],
"Resource":[
"arn:aws:s3:::your-bucket-arn-here/*"
]
}]
}