Использование интегрированного теста QUnit для фреймворков, который требуется проверить или не посетить маршрут, вызывает ошибку.Испытание на выброс Ошибок в Ember.js
В маршруте есть хелпер Handlebars, который должен вызывать ошибку при определенных условиях (не удалось утвердить). Как я могу проверить, нет ли этой ошибки?
Это то, что я до сих пор:
test('throws, if the SVG is missing', function() {
throws(visit('/missing'), Error, "has thrown an Error");
});
Но это не работает, так как ошибка не захватывается throws(...)
и пузырится в рамках тестирования, маркировки этот тест не удалось.
Это выход теста:
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.<anonymous> (http://localhost:7357/assets/vendor.js:23917:16)
at DeferredActionQueues.invoke (http://localhost:7357/assets/vendor.js:13891:18)
Как visit('/missing')
возвращает обещание, можно было бы предположить, что использование .then(success, error)
будет работать, но это не так.
Как у Ember 2.11, утверждают, что выбросы больше не являются вещами. https://github.com/emberjs/ember.js/pull/14898 – snewcomer