我有一個簡單的表單,它不會在任何地方提交(使用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
回調運行後發生的事情。
在此先感謝。