1
我負責提供保存功能的子窗體組件方法的容器組件。我試圖用玩笑&酶(我想我需要酵素?)來測試子組件是否觸發從父組件傳遞的功能。這兩種方法看起來像這樣:用玩笑來測試陣營組件的方法
class Parent extends Component {
handleSave = (someData) => (
/* do some ajax with someData */
)
render() {
return(
<ChildComponent {...this.props} handleSave={this.handleSave} />
)
}
}
class ChildComponent extends Component {
render() {
<form onSubmit={this.props.handleSave}>
<button type="submit">Submit</button>
</form>
}
}
而且測試:
import React from 'react'
import ParentContainer from '../src/ParentContainer'
describe('<ParentContainer />',() => {
it('Should fire handle save when PatientScheduler form saves',() => {
const component = mount(<ParentContainer />)
component.handleSave = jest.fn()
component.find('[type="submit"]').simulate('click')
expect(component.handleSave).toHaveBeenCalled()
})
})
我得到的失敗消息是Expected mock function to have been called.
我覺得我是90%的路。這裏有什麼問題?謝謝。
OK,這解決了問題,提交(謝謝),但我仍然不知道如何對我的handleSave方法正確間諜。 –
存在一定的缺陷在你測試主要是該行'component.handleSave = jest.fn()'。你不應該測試你的內部行爲,而是測試外部的東西。在你的情況下,我假設你將使用一些導入的模塊來完成實際的請求。你必須嘲笑和監視這一點。 –