gpt4 book ai didi

testing - 使用固定装置在 EmberJS 和 QUnit 中进行数据测试

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

我有一个简单的 ember 应用程序,我想测试它,而不是为 API 调用创建服务器。

我环顾四周,发现这段代码非常有帮助。问题是测试我想使用夹具适配器(有道理,对吧?)

 @store = Lfg.__container__.lookup('store:main')

这是我的模型:

Lfg.Activity = DS.Model.extend
title: DS.attr('string')
people: DS.attr('number')
maxPeople: DS.attr('number')
host: DS.attr('string')

然后在 Em.run => 中我这样做

  Lfg.reset()

container = new Ember.Container()
# These are my models... just one for now.
[
'activity'
].forEach (x,i) ->
container.register 'model:'+x, Lfg.get( Ember.String.classify(x) )
# It's essentially just: container.register("model:activity", Lfg.Activity)


@store = DS.Store.create
adapter: DS.FixtureAdapter.extend()
container: container

但我不断收到序列化程序的错误。我尝试添加序列化程序但没有帮助。我还需要 container.register 其他东西吗?

我得到的错误是 TypeError: Cannot call method 'serialize' of undefined 来自 mockJSON 方法,更具体地说,store.serializerFor(type) 正在返回 null。

如果我通过 store = Lfg.__container__.lookup('store:main') 设置商店然后 store.serializerFor(Lfg.Activity) 它似乎工作在控制台中确定 - 这不是同一家商店吗?我想使用带有夹具适配器的那个。我尝试设置序列化程序,但这没有帮助。

最佳答案

我更喜欢使用 mockjax 之类的东西来模拟 api 端点,然后使用 qunit 以及 Ember 和 qunit 提供的内置助手

这是一个如何设置简单的 json 响应的示例

$.mockjax({
url: '/colors',
dataType: 'json',
responseText: {
colors:[
{
id: 1,
color: "red"
},
{
id: 2,
color: "green"
},
{
id: 3,
color: "blue"
}
]
}
});

还有一个会达到这个端点的测试

test("root lists 3 colors", function(){
var store = App.__container__.lookup('store:main');
var colors = store.find('color');
stop();
colors.then(function(arr){
start();
equal(arr.get('length'), 3, 'store returns 3 records');
});
});

http://emberjs.jsbin.com/wipo/3/edit

关于testing - 使用固定装置在 EmberJS 和 QUnit 中进行数据测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617905/

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