说我有一个卡片元素,点击时会翻转。 2秒后,它必须自动翻转。在CSS术语中,点击后,转换样式设置为 rotateY(180deg),2秒后它应该是com 初始
我想为这个反向翻转编写单元测试(目前测试通过,即使我希望变换道具等于初始值):
it( 'flips', () => {
const testedCard = shallow( <Card /> )
testedCard.setState( { faceUp: true } )
setTimeout(
() => {
const cardFlipper = testedCard.node.props.children
expect( cardFlipper.props.transform ).to.equal( 'initdasddaial' )
},
2500
);
} )
答案 0 :(得分:1)
如果您使用mocha
或jasmine
,则可以在done
中传递it
回调:
it( 'flips', (done) => {
const testedCard = shallow( <Card /> )
testedCard.setState( { faceUp: true } )
setTimeout(
() => {
const cardFlipper = testedCard.node.props.children
expect( cardFlipper.props.transform ).to.equal( 'initdasddaial' )
done();
},
2500
);
} )
但是,根据您的测试运行器(设置),{<1}}超时可能会在 2500 mills之前发生。您可能必须配置不同的超时值。
作为旁注,基于时间的单元测试通常不是一个好主意。考虑设计组件,以便您可以更确定地进行测试。