我有一个简单的表单,它不会在任何地方提交(使用preventDefault
),而是更新UI。我想要测试在提交表单时是否有错误提交了UI,但是submit
未在我的测试套件中运行。测试提交的表单不会与sinon,mocha和chai一起提交
该套件使用jsdom
,mocha
和sinon
进行设置。一个例子如下。我的问题是,是否有可能在jsdom /用sinon测试手动表单提交(通过jQuery处理),其中的动作是""
,并且有onsubmit
回调?
在我的类文件中有一个简单的表单提交处理程序。
# MyClass.coffee
$('#my-form').on 'submit', (e) ->
e.preventDefault()
@doSomeStuff()
我的测试用例将内容注入到表单域并调用提交。想象一下,在套件中有一个MyClass的实例
# MyClass_spec.coffee
it 'can submit a form', ->
myClass = new MyClass()
doSomeStuffSpy = sinon.spy MyClass, 'doSomeStuff'
$('#my-form').find('textarea').val('content')
$('#my-form').submit()
expect(doSomeStuffSpy).to.have.been.calledOnce
看来,提交从未发生,并且我的断言总是错误的。有没有一种方法可以像这样测试表单提交?我不需要测试任何东西。我只是想测试在onsubmit
回调运行后发生的事情。
在此先感谢。