私は反応コンポーネントのテストカバレッジを改善しようとしていますが、コンポーネントのレンダリングメソッドで宣言されている変数と関数のテストで問題があります。以下は私がカバー取得できませんよ例のカップルされています。ここでは、コード反応コンポーネントのレンダリング関数内で関数と変数をテストするにはどうすればよいですか?
1)
cityStateZip = `${cityStateZip} - ${location.zipExtension}`;
2)
directionsUrl = `maps://maps.apple.com/?saddr=My+Location&daddr=${gpsCoords.lat}+${gpsCoords.lng}`;
3)
const onClick = (pricingTileId) => {
if (store.selectedPharmacy !== pricingTileId) {
store.setPharmacy(pricingTileId);
}
};
です。
class Tile extends Component {
const { location, store } = this.props;
render() {
let directionsUrl = `https://maps.google.com/?saddr=My+Location&daddr=${gpsCoords.lat}+${gpsCoords.lng}`;
if (navigator.platform.indexOf('iPhone') !== -1
|| navigator.platform.indexOf('iPod') !== -1
|| navigator.platform.indexOf('iPad') !== -1) {
directionsUrl = `maps://maps.apple.com/?saddr=My+Location&daddr=${gpsCoords.lat}+${gpsCoords.lng}`;
}
let cityStateZip = `${location.city}, ${location.state} ${location.zip}`;
if (location.zipExtension) {
cityStateZip = `${cityStateZip} - ${location.zipExtension}`;
}
const onClick = (pricingTileId) => {
if (store.selectedLocation !== pricingTileId) {
store.setLocation(pricingTileId);
}
};
let selectedClass;
if (store.selectedLocation === id) {
selectedClass = 'selected';
}
return (
)
私が見落としているレンダリング関数で宣言されている変数と関数をテストする有効な方法はありますか? (私はテストのためにJestとEnzymeを使用しています)。ありがとうございました!
、それはロジックが大_within_テストすることは難しいです多くのことをしている関数です。そのため、レンダリング関数が使用できるいくつかの小さなメソッドを記述することをお勧めします。 'getCityStateZip()'がzip拡張ロジックを処理し、 'getDirectionsUrl()'がデバイス固有のロジックを処理するようにします – Hamms