我正在使用mocha测试React组件.我试图捕捉一些警告(通过console),主要与"失败的propType"和React可以给出的其他警告有关.但是我不得不重复使用其他测试方法,因为测试只会在第一次显示警告.
这是我的测试代码:
var jsdom = require('mocha-jsdom');
var { expect, assert } = require('chai');
var sinon = require('sinon');
describe('Deck', function() {
jsdom();
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var Deck, Card, OtherMock;
var renderer, result;
beforeEach(function() {
Deck = require('../App/Components/Deck.js');
Card = require('../App/Components/Card.js')
OtherMock = React.createClass({ render: function() { return null } });
renderer = React.addons.TestUtils.createRenderer();
renderer.render(
<Deck>
<OtherMock />
<OtherMock />
<OtherMock />
<Card />
<Card />
<Card />
</Deck>
);
result = renderer.getRenderOutput();
});
afterEach(function() {
});
it('should create a new instance of Deck', function () {
expect(result).to.exist;
});
it('should have a default style', function () {
expect(result.props.style).to.exist;
});
it('should only allow children of type Card', function () {
expect(result.props.children.length).to.exist;
expect(result.props.children.length).to.equal(3);
});
it('should allow one card', function() {
var renderer = React.addons.TestUtils.createRenderer();
renderer.render(
<Deck>
<Card />
</Deck>
);
var result = renderer.getRenderOutput()
expect(result).to.exist;
expect(React.Children.count(result.props.children)).to.equal(1);
});
it('should render empty when passed incorrect children', function() {
var renderer = React.addons.TestUtils.createRenderer();
renderer.render(
<Deck>
<OtherMock />
</Deck>
);
var result = renderer.getRenderOutput()
expect(result).to.exist;
expect(React.Children.count(result.props.children)).to.equal(0);
});
it('should render when empty', function() {
var renderer = React.addons.TestUtils.createRenderer();
renderer.render(
<Deck />
);
var result = renderer.getRenderOutput()
expect(result).to.exist;
});
it('should add keys to children', function() {
var index = React.Children.count(result.props.children);
React.Children.forEach(result.props.children, function(child) {
expect(child.props.cardIndex).to.exist;
expect(child.props.cardIndex).to.equal(--index);
})
});
it('should have just the first child with handlers');
it('should have only the first and second child with images');
it('should preload up to the determined number of images');
})
Run Code Online (Sandbox Code Playgroud)
我看到的是,第一次运行(键入npm run test只是调用mocha --watch --compilers js:babel/register --recursive)它显示警告,我能够console.warn用sinon和一切模拟:

然而,第二次,我没有得到任何警告,我与console.warn间谍做的测试将失败.

知道这里发生了什么吗?我试过在摩卡的Gitter中,在IRC的React频道中,通过文档和直通mocha --help,但无济于事.
| 归档时间: |
|
| 查看次数: |
554 次 |
| 最近记录: |