**Do you want to request a _feature_ or report a _bug_?**
Bug

**What is the current behavior?**
It's not possible to test component that use `ref` with the `react-test-renderer` utilitiesTesting: the refs are always `null`.

``` javascript
/* @flow */

import React from 'react';

export default class Foo extends React.Component {    
    /* the future refs */
    bar; 

    componentDidMount() {
        console.log(this.bar); // this.bar is null

        this.bar.doThings() // So this fail
    }

    render() {
        return (
            <div ref={(c) => { console.log('ref cb', c); this.bar = c; }}> {/* The callback is call but, `c` is null*/}
                <p>Hello World</p>
            </div>
        );
    }
}
```

``` javascript

import React from 'react';
import renderer from 'react-test-renderer';

it('should have valide ref', () => {
    const foo = renderer.create(<Foo />);

    expect(foo.toJSON()).toMatchSnapshot();
});
```

**What is the expected behavior?**

The ref should be usable.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
- `react@15.3.1`
- `react-dom@15.3.1` 
- `react-test-renderer@15.3.1` 

Only tested with these versions.

import type { ReactPropTypeLocations } from 'ReactPropTypeLocations';
var CompositeTypes = {
  ImpureClass: 0,
  PureClass: 1,
  StatelessFunctional: 2,
};
function StatelessComponent(Component) {
}
StatelessComponent.prototype.render = function() {
  var Component = ReactInstanceMap.get(this)._currentElement.type;
  var element = Component(this.props, this.context, this.updater);
  warnIfInvalidElement(Component, element);
  return element;
};
function warnIfInvalidElement(Component, element) {
  if (__DEV__) {
    warning(
      element === null || element === false || React.isValidElement(element),
      '%s(...): A valid React element (or null) must be returned. You may have ' +
      'returned undefined, an array or some other invalid object.',
      Component.displayName || Component.name || 'Component'
    );
    warning(
      !Component.childContextTypes,
      '%s(...): childContextTypes cannot be defined on a functional component.',
      Component.displayName || Component.name || 'Component'
    );
  }
}
function shouldConstruct(Component) {