【发布时间】:2015-02-01 13:04:56
【问题描述】:
我有一个简单的表单,它不会在任何地方提交(使用preventDefault),而是更新 UI。我想测试在提交表单后 UI 是否正确更新,无论是否有错误,但 submit 没有在我的测试套件中运行。
套件是使用jsdom、mocha 和sinon 设置的。下面是一个例子。我的问题是,是否可以在 jsdom/with 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 回调后发生的事情。
提前致谢。
【问题讨论】:
标签: forms coffeescript mocha.js sinon chai