gpt4 book ai didi

unit-testing - 使用方法调用对父路由进行 Ember 测试

转载 作者:行者123 更新时间:2023-11-28 20:21:35 26 4
gpt4 key购买 nike

我被带到了一个项目的“后端”,并被要求帮助为应用程序编写测试。我是 Ember 的新手,只需要一点帮助即可入门。我们正在尝试为路线提供单元测试,因此我们可以在应用程序上有更多的分子范围,而不是验收测试。我已经看过一些教程并经历了我能想到的每一种可能的情况。我只需要一点快速启动。

这是这条路线的 route.js 的一部分。

  • 在这个父路由的下游,我们有另一个显示联系人列表的嵌套路由,当用户点击显示按钮时,它会调用“model”并为模板和 url 返回变量“rec”<


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');
});
}

这是为测试预先生成的代码。我真的没有做任何修改,因为我真的不知道从哪里开始。

  • 此应用程序没有后端,其设计是根据用户需要的任何标准接收信息并提供 iso 文件。
  • 我确定我需要为测试提供一些模拟数据并将其发送到方法,但我还是不确定我使用的是哪些 Qunit 部件。
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');
});
});

最佳答案

当我第一次转向前端测试时,我也曾为此苦苦挣扎。凭借几年的经验,我有信心说您不应该以这种方式对路由对象进行单元测试。相反,对 ember 应用程序的测试应该侧重于两种类型的测试。

  1. ember 称之为集成测试(但实际上更接近 UI 单元测试)
  2. 验收测试

Integration tests on components 允许您了解更小的细节和边缘情况,它们可能非常有值(value)。

在这种情况下,我认为你想要的实际上是一个 acceptance test .

如果您的测试经验完全像我的,那么一开始会感觉您测试了太多东西,但是浏览器实际加载整个应用程序的这些类型的测试在寻找错误方面具有最大值(value),并且是随着时间的推移最易于维护。

关于unit-testing - 使用方法调用对父路由进行 Ember 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58981457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com