के साथ एक प्रतिक्रिया घटक विशेषता के लिए शैली का परीक्षण करने के मैं एक घटक प्रतिक्रिया के लिए एक शैली विशेषता का परीक्षण करने की कोशिश कर रहा हूँ। परीक्षण में स्टाइल पैरा प्राप्त करने का सबसे अच्छा तरीका क्या है?कैसे एनजाइम
इस समय, मेरी सबसे अच्छा विकल्प है, तो एचटीएमएल स्ट्रिंग शामिल परीक्षण करने के लिए है, लेकिन मुझे लगता है कि वहाँ एक बेहतर विकल्प है।
मामला:
it('Should render large image when desktop',() => {
const dummyUrl = 'http://dummyUrl';
const wrapper = shallow(
<MockedStore
initialState={{
app: fromJS({ browser: { desktop: true } }),
}}
>
<LandingHero bigImage={dummyUrl} />
</MockedStore>
);
});
परीक्षण करने के लिए घटक है:
// @flow
import React, { Component } from 'react';
import gc from 'styles/core.scss';
import $ from 'jquery';
import DownloadButton from 'components/DownloadButton';
import withStyles from 'isomorphic-style-loader/lib/withStyles';
import DownArrow from 'components/DownArrow';
import { connect } from 'react-redux';
import type { Map } from 'immutable';
import c from './styles.scss';
@withStyles([gc, c])
@connect(({ app }) => ({ app }))
class LandingHero extends Component {
componentDidMount() {
if ($(window).height() > 0) { // Necesary for webpack dev server
$(this.hero).css('height', $(window).height() - 46);
}
}
hero: HTMLElement;
props: {
app: Map<string, any>,
copy: string,
secondaryText: string,
thirdText: string,
bigImage?: string,
smallImage: string,
}
render() {
const { copy, secondaryText, thirdText } = this.props;
const browser = this.props.app.has('browser') ? this.props.app.get('browser') : {};
const backgroundImage = browser.desktop ? this.props.bigImage : this.props.smallImage;
return (
<div
className={`${c.hero} ${gc.textCenter}` +
` ${gc.alignMiddle} ${gc.alignCenter} ${gc.row} ${gc.expanded}`}
ref={(hero) => { this.hero = hero; }}
style={{
margin: 0,
position: 'relative',
background: `linear-gradient(to bottom, rgba($ixdarkprimary, .3), rgba($ixdarkprimary, .3)), url(${backgroundImage || ''})`,
}}
>
<div className={`${gc.row} ${gc.alignCenter} ${gc.alignMiddle} ${gc.column} ${gc.medium10}`}>
<div className={`${gc.textCenter}`}>
<div
className={`${gc.white} ${c.mainText} ${c.copy}`}
>
{ copy }
</div>
<div className={`${gc.small6} ${gc.smallOffset3} ${gc.medium4} ${gc.mediumOffset4}`} style={{ marginBottom: 45 }}>
<DownloadButton />
</div>
<div className={`${gc.white} ${gc.fontBold} ${gc.font24}`}>{secondaryText}</div>
<p className={`${gc.white} ${gc.font20}`}>{thirdText}</p>
</div>
<DownArrow goTo="#content" />
</div>
</div>
);
}
}
export default LandingHero;
हे jacefarm क्या विन्यास आप क्रम में हंसी के लिए उपयोग सास (एससीएसएस) उपयोग करने के लिए है? मेरा मतलब है कि मेरे पास निम्नलिखित "मॉड्यूलनाम मैपर" है: { "\\। (Scss | css) $": " /src/sassMockForJest.js" }, लेकिन उदाहरण के लिए गुणों का उपयोग करते समय मुझे अपरिभाषित त्रुटियां मिलीं, अगर मैं आपके जैसे ही घटक का उपयोग किया गया था, मैं देख सकता हूं कि 'संपत्ति नहीं पढ़ी जा सकती' टेक्स्ट 'अनदेखा' टेक्स्ट '' $ {gc.textCenter} ' –