我被带到项目的“后端”,并被要求帮助编写应用程序的测试。我是Ember的新手,只需要一点帮助就可以开始使用。我们正在尝试为路线提供单元测试,因此我们可以在应用程序上拥有更多的分子范围,而不是验收测试。我看了一些教程,并经历了我能想到的每种可能的情况。我只需要快速入门。
export default Route.extend(ScrollTo, {
flashMessages: service(),
model: function(params) {
let rec= this.store.peekRecord('contact', params.contact_id);
return rec;
},
actions: {
saveContact: function() {
let model = this.currentRouteModel();
model
.save()
.then(() => {
//this.refresh();
//this.setModelHash();
this.flashMessages
.success(`Saved Contact: ${model.get('title')}`);
//this.transitionTo('contacts');
});
}
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Route | contact/show', function(hooks) {
setupTest(hooks)
test('it exists', function(assert) {
var route = this.owner.lookup('route:contact/show');
assert.ok(route, 'contact.show route works');
});
});
当我第一次进入前端测试时,我也为此感到困惑。凭借几年的经验,我很有信心地说您不应以这种方式对路线对象进行单元测试。相反,对余烬应用程序的测试应侧重于两种类型的测试。
Integration tests可让您深入研究较小的细节和边缘情况,它们可能会非常有价值。
在这种情况下,我认为您实际上想要的是acceptance test。
如果您的测试经历完全像我的,那会感觉您一开始就测试了太多东西,但是这些类型的测试实际上是浏览器加载整个应用程序的,在寻找错误方面最有价值,也是最重要的。随时间可维护。