如何使用jest测试React类中渲染以外的函数?

jha*_*amm 7 reactjs jestjs

我正在尝试TDDReact我正在构建的应用程序上做一些事情.使用jest我能够测试我的渲染函数,看看我是否得到了我期望渲染的东西.如果我想在课堂上测试其他一些功能怎么办?我该如何掌握它?例如,这是一个React类:

var moment = require('moment');
var React = require('react');
var utils = require('./utils');

module.exports = React.createClass({
    days: function() {
        var days = [];
        var nextMonth = this.daysFromNextMonth(days, numberOfDays);
        return days;
    },
    daysFromNextMonth: function(days, numberOfDays) {
        ...
    },
    render: function() {
        var that = this;
        var days = this.days().map(function(day, i) {
            return <li key={day}>{day}</li>
        return (
            <ul className='monthly-view'>
                {days}
            </ul>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

我想抓住我的daysdaysFromNextMonth功能,看看他们是否正在回归我的期望.我试着jest抓住这样的函数:

it('should show an render', function() {
    var result = DailyView.daysFromNextMonth(day, 10)
    ....
});
Run Code Online (Sandbox Code Playgroud)

error说我没办法daysFromNextMonth.我该如何解决?

Nic*_*lin 11

您需要渲染组件以在其上引用方法(类似于在使用实例方法之前实例化类):

var view = TestUtils.renderIntoDocument(<DailyView />)
var result = view.daysFromNextMonth(day, 10)
Run Code Online (Sandbox Code Playgroud)

然后,您可以调用任何实例方法.