Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <title>Testing Controller Actions</title>
  <meta name="description" content="guide: testing-controllers-1" />
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.14.0.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v2.0.0.js"></script>
  <script src="http://builds.emberjs.com/release/ember.js"></script>
  <script src="http://code.jquery.com/qunit/qunit-1.14.0.js"></script>
  <script src="https://rawgit.com/rwjblue/ember-qunit-builds/master/ember-qunit.js"></script>
</head>
<body>
  
  <div id="qunit"></div>
  <div id="ember-testing"></div>
  
</body>
</html>
 
/* Put your CSS here */
html, body {
    margin: 10px;
}
 
/*=================== APP ====================*/
App = Ember.Application.create();
App.PostsController = Ember.ArrayController.extend({
  propA: 'You need to write tests',
  propB: 'And write one for me too',
  setPropB: function(str) {
    this.set('propB', str);
  },
  actions: {
    setProps: function(str) {
      this.set('propA', 'Testing is cool');
      this.setPropB(str);
    }
  }
});
/*=================== TESTS ====================*/
App.setupForTesting();
App.injectTestHelpers();
setResolver(Ember.DefaultResolver.create({ namespace: App }));
moduleFor('controller:posts', 'Posts Controller');
test('calling the action setProps updates props A and B', function() {
  expect(4);
  
  // get the controller instance
  var ctrl = this.subject();
  // check the properties before the action is triggered
  equal(ctrl.get('propA'), 'You need to write tests');
  equal(ctrl.get('propB'), 'And write one for me too');
  // trigger the action on the controller by using the `send` method, 
  // passing in any params that our action may be expecting
  ctrl.send('setProps', 'Testing Rocks!');
  // finally we assert that our values have been updated 
  // by triggering our action.
  equal(ctrl.get('propA'), 'Testing is cool');
  equal(ctrl.get('propB'), 'Testing Rocks!');
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x