There is no extra guard or clause in `enqueueForceUpdate` when calling `render` which means the `render` always calls `shouldComponentUpdate` which can block even forced re-render during tests.

This for example [breaks shallow rendering in Enzyme when using MobX and observables](https://github.com/airbnb/enzyme/issues/1267).

Minimal test case:

```javascript
import React from 'react'
import ShallowRenderer from 'react-test-renderer/shallow';
const renderer = new ShallowRenderer();

class TestComponent extends React.Component {
  render() { return <span/> }
}

describe('forceUpdate', () => {
  it('does not call shouldComponentUpdate', () => {
    let called = 0
    TestComponent.prototype.shouldComponentUpdate = () => called += 1
    const component = renderer.render(<TestComponent/>);
    renderer._instance.forceUpdate()
    expect(called).toBe(0) // <- this throws because called === 1
  })
})
```
return this._instance;
  }
  getRenderOutput() {
    return this._rendered;
  }
  render(element, context = emptyObject) {
    invariant(
      React.isValidElement(element),
      'ReactShallowRenderer render(): Invalid component element.%s',
      typeof element === 'function'
        ? ' Instead of passing a component class, make sure to instantiate ' +
            'it by passing it to React.createElement.'
        : '',
    );
    invariant(
      typeof element.type !== 'string',
      'ReactShallowRenderer render(): Shallow rendering works only with custom ' +
        'components, not primitives (%s). Instead of calling `.render(el)` and ' +
        'inspecting the rendered output, look at `el.props` directly instead.',
      element.type,
    );
    if (this._rendering) {
      return;
    }
    this._rendering = true;
    this._element = element;