我正在尝试使用Ember Validations插件,但我无法使其正常工作。在Chrome控制台中,我看到:警告:无法找到"presence“验证器。
这是我的模型:
import Ember from 'ember';
import DS from 'ember-data';
import EmberValidations from 'ember-validations';
export default DS.Model.extend(EmberValidations.Mixin, {
name: DS.attr('string'),
validations: {
name: {
presence: true
}
}
});下面是我的测试:
import Ember from 'ember';
import EmberValidations from 'ember-validations';
import { moduleForModel, test } from 'ember-qunit';
moduleForModel('person', 'Unit | Model | person', {
// Specify the other units that are required for this test.
needs: ['ember-validations@validator:local/presence'],
afterEach: function() {
window.sessionStorage.clear();
}
});
test('isValid should be false if name is not set', function(assert) {
stop();
var model = this.subject();
console.log(model);
Ember.run(function() {
sinon.spy(model, 'save');
model.validate().then(function() {
start();
assert.equal(model.get('isValid'), false);
});
});
});此测试的结果为:
在测试#1在Object.test (http://localhost:4200/assets/test-support.js:1644:11)在http://localhost:4200/assets/myproj.js:14450:15在mod.state (http://localhost:4200/assets/vendor.js:150:29)在tryFinally (http://localhost:4200/assets/vendor.js:30:14)在requireModule (http://localhost:4200/assets/vendor.js:148:5)在Object.TestLoader.require (http://localhost:4200/assets/test-loader.js:29:9)在Object.TestLoader.loadModules (http://localhost:4200/assets/test-loader.js:21:18):<(未知混合):ember848>
发布于 2015-05-27 19:13:53
您需要向ember-validations docs in testing part中定义的测试套件添加依赖项。但是,请注意这些文档有点过时了。正确的needs应该只包含您使用的验证器(presence),如下所示:
needs: ['ember-validations@validator:local/presence']不要包含service:validations。
我很久以前就发布了an issue,但是还没有被讨论过。
https://stackoverflow.com/questions/30474762
复制相似问题