Skip to content

Instantly share code, notes, and snippets.

@Gattermeier
Last active September 15, 2016 08:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Gattermeier/83d9237fef397533f538 to your computer and use it in GitHub Desktop.
Save Gattermeier/83d9237fef397533f538 to your computer and use it in GitHub Desktop.
Unit Testing for React with Tape
import React from 'react';
import { createRenderer } from 'react-addons-test-utils';
import createComponent from 'react-unit';
import tape from 'tape';
import addAssertions from 'extend-tape';
import jsxEquals from 'tape-jsx-equals';
const test = addAssertions(tape, {jsxEquals});
// Component to test
import Button from '../components/Button';
test('----- React Component Tests: Button -----', (t) => {
// Shallow rendering: Render React element only *one* level deep
const component = createComponent.shallow(<Button label="share" />);
// Test component props and content
t.equal(component.props.className, 'default-class', 'ClassName props of component should equal "share"');
t.equal(component.text, 'share', 'Label props of component should be rendered as Button text "share"');
// Test rendered output
const renderer = createRenderer();
renderer.render(<Button label="share" />);
const result = renderer.getRenderOutput();
t.jsxEquals(result, <div className="default-class">share</div>);
t.end();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment