Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <title>EmberJs Unit Testing Controller Needs</title>
  <meta name="description" content="guide: testing-controllers-2" />
  <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.PostController = Ember.ObjectController.extend({
  // ...
});
App.CommentsController = Ember.ArrayController.extend({
  needs: 'post',
  title: Ember.computed.alias('controllers.post.title')
});
/*=================== TESTS ====================*/
App.setupForTesting();
App.injectTestHelpers();
setResolver(Ember.DefaultResolver.create({ namespace: App }));
moduleFor('controller:comments', 'Comments Controller', {
  needs: ['controller:post']
});
test('modify the post', function() {
  expect(2);
  // grab an instance of `CommentsController`
  // and `PostController`
  var ctrl = this.subject(),
      postCtrl = ctrl.get('controllers.post');
  // wrap the test in the run loop because we 
  // are dealing with async functions
  Ember.run(function() {
    // set a generic model on the post controller
    postCtrl.set('model', Ember.Object.create({ title: 'foo' }));
    // check the values before we modify the post
    equal(ctrl.get('title'), 'foo');
    // modify the title of the post
    postCtrl.get('model').set('title', 'bar');
    // assert that the controllers title has changed
    equal(ctrl.get('title'), 'bar');
    
  });
});
Output

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

Dismiss x