首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在注册测试助手时访问Ember数据存储?成员3.3

如何在注册测试助手时访问Ember数据存储?成员3.3
EN

Stack Overflow用户
提问于 2018-08-11 08:37:04
回答 2查看 192关注 0票数 2

我正在使用一个自定义的测试助手,它需要访问Ember数据存储,但我不知道如何从给定的应用程序参数访问它。

代码语言:javascript
复制
export default registerAsyncHelper('myCustomHelper', function(app) {
  console.log(app); // how to access store?
  let store = app.__registry__.registrations['service:store'];
  store.pushPayload(// json payload);
});

如何在注册自定义帮助器时访问商店?我一直试图找出一种从__registry__.registrations['service:store']键访问它的方法,但当我可以看到它就在那里并具有pushPayload函数时,这给了我一个未定义的值。如果您能帮忙,我们将不胜感激

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-11 09:00:49

哈哈!我想我明白了:

代码语言:javascript
复制
export default registerAsyncHelper('myCustomHelper', function(app) {
  let instance = app.buildInstance();
  let store = instance.lookup('service:store');
  store.pushPayload(// json payload);
});

但不确定这是否有任何副作用?如果有,请让我知道,我想我已经花了足够的时间来尝试建立一个好的测试环境:p

票数 2
EN

Stack Overflow用户

发布于 2018-08-20 07:57:44

这是typescript,但希望它在js中也能工作(虽然没有类型声明)。

代码语言:javascript
复制
// tests/helpers/get-service.ts
import { getContext } from "@ember/test-helpers";

export function getService<T>(name: string): T {
  const { owner } = getContext();

  const service = owner.lookup(`service:${name}`);

  return service;
}

示例用法:

代码语言:javascript
复制
// tests/helpers/create-current-user.ts
import { run } from '@ember/runloop';
import { DS } from 'ember-data';

import Identity from 'emberclear/data/models/identity/model';

import { getService } from './get-service';

export async function createCurrentUser(): Promise<Identity> {
  const store = getService<DS.Store>('store');

  const record = store.createRecord('identity', {
    id: 'me', name: 'Test User'
  });

  await record.save();

  return record;
}

此代码来自https://emberclear.io https://gitlab.com/NullVoxPopuli/emberclear/tree/master/packages/frontend/tests/helpers

希望这能有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51795467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档