如何在 Jasmine 中测试表单提交?

How do I test a form submit in Jasmine?(如何在 Jasmine 中测试表单提交?)
本文介绍了如何在 Jasmine 中测试表单提交?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表单,它在最终发布到它的 ACTION URL 之前执行了一些广泛的 Javascript 内容.我正在编写一些 Jasmine 单元测试,并希望确保在提交表单时发生 Javascript 内容.但是,我绝对不希望页面在我进行单元测试时转到 ACTION URL.

I have a form that does some extensive Javascript stuff before finally POSTing to it's ACTION URL. I am writing some Jasmine unit tests and want to make sure the Javascript stuff happens when the form is submitted. However, I definitely don't want the page to go to the ACTION URL while I am unit testing.

我在这里看到了一个不错的建议:http://groups.google.com/group/jasmine-js/browse_thread/thread/a010eced8db17c1a?pli=1

I saw what seemed like a good suggestion here: http://groups.google.com/group/jasmine-js/browse_thread/thread/a010eced8db17c1a?pli=1

...但是,由于我对 Jasmine 还很陌生,我不确定如何实现它,并且在网络上找不到任何相关的示例.有没有人有一些我可以查看的示例代码可以完成我的需要?

...but, as I am fairly new to Jasmine, I am unsure how to implement it and cannot find any pertinent examples on the web. Does anyone have some sample code I could look at that would accomplish what I need?

谢谢!

推荐答案

也许这个代码片段可以帮助你...

Maybe this code snippet can help you...

it('calls ajax post on export button click', function() {
  view.render();
  var form = $('#export_images_xml_form');
  var submitCallback = jasmine.createSpy().andReturn(false);
  form.submit(submitCallback);

  $('#export_images_xml_button').click();

  expect(form.attr('action')).toEqual('/export');
  expect($('#export_images_xml_form input').attr('value')).toEqual('22,33,44');
  expect(submitCallback).toHaveBeenCalled();
});

我所做的基本上是停止在关联回调中返回 false 的给定表单的每次提交(请参阅 submitCallback 行为).

What I do is basically stopping every submit for given form returning false in the associated callback (see submitCallback behavior).

那我也可以测试回调是否被调用...

Then I can also test callback has been called...

希望对你有帮助!

这篇关于如何在 Jasmine 中测试表单提交?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)