Ember Testing Example

Model, controller, view and integration tests for Ember.js. Uses Mocha and Chai.

by Jed Mao

HTML

<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/handlebars-1.0.0-rc.3.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/ember-1.0.0-rc.2.js"></script>
<link rel="stylesheet" href="https://s3.amazonaws.com/kiddsoftware-jsfiddle/mocha-1.9.0.css">
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/mocha-1.9.0.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/sinon-1.6.0.js"></script>
<script src="	 https://s3.amazonaws.com/kiddsoftware-jsfiddle/chai-1.5.0.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/sinon-chai.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/chai-jquery.js"></script>
<script src="https://s3.amazonaws.com/kiddsoftware-jsfiddle/ember-data-a29070da.js"></script>
<!-- Mocha test output goes here. -->
<div id="mocha"></div>

JavaScript

//================================================================================
// App Code

function reverseTitles(message) {
    return message;
}


//================================================================================
// Test Code

// Configure Mocha, telling both it and chai to use BDD-style tests. 
mocha.setup('bdd');
var expect = chai.expect;

describe('String.reverse', function() {
    it('reverses strings', function() {
        expect('abc'.reverse()).to.eq('cba');
    });
});

describe('reverseTitles function', function() {
    it('reverses titles', function() {
        var message = 'Foo, Bar and Baz!';
        var expected = 'ooF, raB and zaB!';
        expect(reverseTitles(message)).to.eq(expected);
    });
});

// Run all our test suites.  Only necessary in the browser.
mocha.run();