How to use React Test Utilities with Jasmine

backbone.js, jasmine, reactjs

Solution

SOLVED

i used window namespace. imported Notice component from external file

describe("cNotice", function () {
    it("lol", function () {
        var component = React.addons.TestUtils.renderIntoDocument(window.Notice({ message: "show me the message" }));
        expect(component.getDOMNode().childNodes[0].className).toBe('notice');
    });
});

Problem

I made unit test code with test utils by React. But encountered a problem My environment is: - Rails 4 - Jasmine 2.0.0 - Backbone 1.1.2 ``` describe("cNotice", function () { it("lol", function () { console.log(Notice); // present console.log(<Notice message="show me the message" />); // return Constructor var instance = <Notice message="show me the message" />; var component = React.addons.TestUtils.renderIntoDocument(instance); expect(component.getDOMNode().childNodes[0].className).toBe('notice'); }); }); ``` Error message is: Error: Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. This usually means that you're trying to add a ref to a component that doesn't have an owner (that is, was not created inside of another component's `render` method). Try rendering this component inside of a new top-level component which will hold the ref. UPDATE This code is no problem: ``` describe("cNotice", function () { var Notice = null; beforeEach(function () { Notice = React.createClass({...}); }); it("lol", function () { var instance = <Notice message="show me the message" />; var component = React.addons.TestUtils.renderIntoDocument(instance); expect(component.getDOMNode().childNodes[0].className).toBe('notice'); }); }); ``` But I want to import Notice component from external file.

Original source