title: Test for throwing Errors in Ember.js
body: <p>Using the integrated QUnit testing framweork I need to test wether or not visiting a route causes an Error to be thrown.</p>
  
  <p>There is a Handlebars helper in the route that should throw an Error under certain conditions (failed Assertion). How do I test wether or not this Error is thrown?</p>
  
  <p>This is what I got so far:</p>
  
  <pre><code>test('throws, if the SVG is missing', function() {
    throws(visit('/missing'), Error, "has thrown an Error");
  });
  </code></pre>
  
  <p>But it does not work, as the Error is not caught by <code>throws(...)</code> and bubbles up to the testing framework, marking this test as failed.</p>
  
  <p>This is the test output:</p>
  
  <pre><code>Died on test #1     at http://localhost:7357/assets/dummy.js:304:5
      at requireModule (http://localhost:7357/assets/vendor.js:77:29)
      at http://localhost:7357/assets/test-loader.js:14:29: Assertion Failed: No SVG found for this/svg/is/missing
  Source:     
  Error: Assertion Failed: No SVG found for this/svg/is/missing
      at new Error (native)
      at Error.EmberError (http://localhost:7357/assets/vendor.js:27463:23)
      at Object.Ember.assert (http://localhost:7357/assets/vendor.js:17077:15)
      at inlineSvg (http://localhost:7357/assets/dummy.js:94:13)
      at Object.bindView.normalizedValue (http://localhost:7357/assets/vendor.js:20498:21)
      at Object.SimpleHandlebarsView.render (http://localhost:7357/assets/vendor.js:23450:26)
      at EmberRenderer_createElement [as createElement] (http://localhost:7357/assets/vendor.js:52738:16)
      at EmberRenderer.Renderer_renderTree [as renderTree] (http://localhost:7357/assets/vendor.js:23840:24)
      at EmberRenderer.&lt;anonymous&gt; (http://localhost:7357/assets/vendor.js:23917:16)
      at DeferredActionQueues.invoke (http://localhost:7357/assets/vendor.js:13891:18)
  </code></pre>
  
  <p>As <code>visit('/missing')</code> returns a promise, one would assume that using <code>.then(success, error)</code> would work, but it does not.</p>