1
我在我的應用程序上運行'ember test --server',出現兩次失敗,我不知道它們爲什麼失敗。Ember測試失敗
從CLI:
> ToUrlHelper: it works
> ✘ Died on test #1 at eval (new-cms/tests/unit/helpers/to-url-test.js:10:5)
> at requireModule (http://localhost:7357/assets/vendor.js:70:29)
> at http://localhost:7357/assets/test-loader.js:14:29: undefined is not a function
從Web瀏覽器:
> Died on test #1 at eval
> (new-cms/tests/unit/helpers/to-url-test.js:10:5)
> at requireModule (http://localhost:7357/assets/vendor.js:70:29)
> at http://localhost:7357/assets/test-loader.js:14:29: undefined is not a function Source: TypeError: undefined is not a function
> at Object.eval (new-cms/tests/unit/helpers/to-url-test.js:11:20)
> at Object.Test.run (http://localhost:7357/assets/test-support.js:1078:18)
> at http://localhost:7357/assets/test-support.js:1165:10
> at process (http://localhost:7357/assets/test-support.js:881:24)
> at http://localhost:7357/assets/test-support.js:470:5
這是在對URL的test.js:
import {
toUrl
} from 'new-cms/helpers/to-url';
module('ToUrlHelper');
// Replace this with your real tests.
test('it works', function() {
var result = toUrl(42);
ok(result);
});
從代碼實際幫手:
import Ember from 'ember';
export default Ember.Handlebars.makeBoundHelper(function(value) {
if(typeof(value) !== 'undefined') {
return value.replace(/\s+/g, '-').toLowerCase();
}
return '';
});
我使用的是ember-cli,它產生了測試,所以我不知道爲什麼數字'42'被傳遞。我應該刪除測試並使用cli重新創建它嗎? – Mithrilhall 2014-12-03 21:13:13
嗯,我猜Ember cli只是爲你生成一個基本的測試,而不知道你的函數的實現。你的測試應該是「驗證」預期的行爲。在你的toUrl函數中,你不希望收到數字,而是字符串。然後,你的測試必須驗證意外,但「可能發生」行爲,因此你應該測試傳遞null,未定義,數字等......到你的函數中,並修改它的實現以避免它的破壞。 (這實際上就是發生在這裏的事情,燼哲提供了一個邊緣案例並破壞了你的代碼)。 – Sephy 2014-12-07 11:04:32
如果這回答你的問題,請檢查它作爲正確的答案。這將驗證它。 – Sephy 2014-12-07 18:09:32