@bagaar/ember-graphql-嘲笑
用于模拟 GraphQL 请求的 Ember 附加符 Mock服务工人。 。 。 .
兼容性
- Ember.js v5.12起为v7.x起
- 嵌入或嵌入自动导入 v2
- MSW v2 或以上数
安装
npm install -D @bagaar/ember-graphql-mocking msw
pnpm add -D @bagaar/ember-graphql-mocking msw
yarn add -D @bagaar/ember-graphql-mocking msw
使用量
1. 设置 @bagaar/ember-graphql- mocking
单位 tests/test-helper.js数字 :
- 导入
setupEmberGraphqlMocking - 导入您的图形QL 方案
- 打电话
setupEmberGraphqlMocking用您的图形QL 方案
// tests/test-helper.js
import Application from 'my-app/app';
import config from 'my-app/config/environment';
import * as QUnit from 'qunit';
import { setApplication } from '@ember/test-helpers';
import { setup } from 'qunit-dom';
import { start } from 'ember-qunit';
import { setupEmberGraphqlMocking } from '@bagaar/ember-graphql-mocking/test-support'; // 1.
import schema from 'my-app/graphql/schema'; // 2.
QUnit.begin(() => setupEmberGraphqlMocking(schema)); // 3.
setApplication(Application.create(config.APP));
setup(QUnit.assert);
start();
[注] 确保使用
QUnit.begin,作为setupEmberGraphqlMocking返回一个承诺.
如果你想要传递额外的 启动选项
通过定义 mswStartOptions 对象 :
QUnit.begin(() =>
setupEmberGraphqlMocking(schema, {
mswStartOptions: {
// Additional MSW start options...
},
})
);
2. 撰写接受测试
- 导入
mockResolvers财务报告和审定财务报表setupGraphqlTest - 打电话
setupGraphqlTest与hooks - 打电话
mockResolvers以嘲笑每个测试所需的解析器
setupGraphqlTest 将确保所有解析者 在两次测试之间被清除.
mockResolvers 接受由一个或多个解析器组成的对象。 键必须是被模拟操作的名称, 值可以是响应对象 或者说 返回响应对象的函数.
[注] 确保您的操作 名称 顺序
@bagaar/ember-graphql-mocking用于正常运行.
// tests/acceptance/my-acceptance-test.js
import { module, test } from 'qunit';
import { visit, currentURL } from '@ember/test-helpers';
import { setupApplicationTest } from 'my-app/tests/helpers';
import { mockResolvers, setupGraphqlTest } from '@bagaar/ember-graphql-mocking/test-support'; // 1.
module('Acceptance | ember-graphql-mocking', function (hooks) {
setupApplicationTest(hooks);
setupGraphqlTest(hooks); // 2.
test('visiting /', async function (assert) {
mockResolvers({ // 3.
me: {
id: '1',
firstName: 'John',
lastName: 'Doe',
},
});
await visit('/');
assert.strictEqual(currentURL(), '/');
assert.dom('[data-test-me-id]').hasText('1');
assert.dom('[data-test-me-first-name]').hasText('John');
assert.dom('[data-test-me-last-name]').hasText('Doe');
});
});
[注] 通话
mockResolvers在一个单一测试范围内的多次,将简单地将所有解析器合并为一个单一根.
[注] 这些代码实例的工作版本可见于 这个加登的测试应用。 。 。 .
捐款
见 捐款 详细指南.
许可证
本项目根据以下规定获得许可证: MIT 许可证。 。 。 .