0
快照測試組件時,我只想測試組件本身,而不是Redux中的操作,狀態或連接功能。這是因爲我在其他地方測試了這些功能。Jest快照測試Redux&覆蓋
這擾亂了您的代碼覆蓋率,因爲它期望您測試所有函數。
例如:
export const EarningsInfo = ({ close }) => (/* ... */);
const mapStateToProps = _ => ({});
const mapActionsToProps = dispatch => ({
close: _ => dispatch(closeModal()),
});
export default connect(mapStateToProps, mapActionsToProps)(EarningsInfo);
玩笑期待您測試
earningsInfo
mapStateToProps
mapActionsToProps
connect
所以,如果你有一個簡單的測試是這樣的:
import { EarningsInfo } from '../components/EarningsInfo';
it('renders correctly',() => {
const tree = renderer.create(
<EarningsInfo close={() => null } />
).toJSON();
expect(tree).toMatchSnapshot();
});
代碼覆蓋率報告,您只是在測試文件的25%。我相信這是按預期工作的。
我的問題是雙重的
- 我是在我的思想糾正
mapStateToProps
,mapActionsToProps
和connect
不應該需要進行測試。 - 有沒有辦法忽略一個函數的名稱爲覆蓋目的?
其實在查看這個http://redux.js.org/docs/recipes/WritingTests.html#connected-components後,我相信我認爲測試應該在組件本身上,而不是其他功能上。那麼真的,忽略Jest中函數名稱的最好方法是什麼? –
就我個人而言,我會將'EarningsInfo'組件導出爲一個命名導出(除了連接組件的默認導出之外)並僅測試原始的'EarningsInfo'組件。然後進行一些集成測試,確保東西連接正確。 – kentcdodds