# @bagaar/ember-graphql-mocking 中文文档

规范地址：https://npmcn.com/package/%40bagaar/ember-graphql-mocking/

版本：1\.1\.0
npm 元数据更新时间：2026-11-05T14:39:44.155Z
中文译文更新时间：2026-11-07T19:15:26.858Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bagaar/ember-graphql-mocking
原文对照：https://npmcn.com/package/%40bagaar/ember-graphql-mocking/?lang=original
源码仓库：https://github.com/Bagaar/ember-graphql-mocking

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：36.6 kB，17 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：msw \>= 2\.0\.0，graphql \>= 16\.0\.0，ember-source ^5\.12\.0 \|\| ^6\.0\.0 \|\| ^7\.0\.0
- 首次发布：2022-02-02T16:42:30.372Z
- 最新版本发布：2026-11-05T14:39:43.738Z
- 近 30 天下载量：3030（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：17（近 12 个月 4 个）

## 中文简介

使用 Mock Service Worker(MSW) 来模拟 GraphQL 请求的 Ember 附加.

## 安装

```sh
npm install @bagaar/ember-graphql-mocking
```

也可以使用：`pnpm add @bagaar/ember-graphql-mocking`、`yarn add @bagaar/ember-graphql-mocking`、`bun add @bagaar/ember-graphql-mocking`

## README

# @bagaar/ember-graphql-嘲笑

[![CI](https://github.com/bagaar/ember-graphql-mocking/workflows/CI/badge.svg)](https://github.com/bagaar/ember-graphql-mocking/actions?query=workflow%3ACI) [![NPM Version](https://badge.fury.io/js/%40bagaar%2Fember-graphql-mocking.svg)](https://badge.fury.io/js/%40bagaar%2Fember-graphql-mocking)

用于模拟 GraphQL 请求的 Ember 附加符 [Mock服务工人](https://github.com/mswjs/msw)。 。 。 .

## 兼容性

-   Ember.js v5.12起为v7.x起
-   嵌入或嵌入自动导入 v2
-   MSW v2 或以上数

## 安装

```shell
npm install -D @bagaar/ember-graphql-mocking msw
```

```shell
pnpm add -D @bagaar/ember-graphql-mocking msw
```

```shell
yarn add -D @bagaar/ember-graphql-mocking msw
```

## 使用量

### 1\. 设置 @bagaar/ember-graphql- mocking

单位 `tests/test-helper.js`数字 :

1.  导入 `setupEmberGraphqlMocking`
2.  导入您的图形QL 方案
3.  打电话 `setupEmberGraphqlMocking` 用您的图形QL 方案

```javascript
// 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` 返回一个承诺.

如果你想要传递额外的 [启动选项](https://mswjs.io/docs/api/setup-worker/start#options) 通过定义 `mswStartOptions` 对象 :

```js
QUnit.begin(() =>
  setupEmberGraphqlMocking(schema, {
    mswStartOptions: {
      // Additional MSW start options...
    },
  })
);
```

### 2\. 撰写接受测试

1.  导入 `mockResolvers` 财务报告和审定财务报表 `setupGraphqlTest`
2.  打电话 `setupGraphqlTest` 与 `hooks`
3.  打电话 `mockResolvers` 以嘲笑每个测试所需的解析器

`setupGraphqlTest` 将确保所有解析者 在两次测试之间被清除.

`mockResolvers` 接受由一个或多个解析器组成的对象。 键必须是被模拟操作的名称, 值可以是响应对象 _或者说_ 返回响应对象的函数.

> \[注\] 确保您的操作 [名称](https://graphql.org/learn/queries/#operation-name) 顺序 `@bagaar/ember-graphql-mocking` 用于正常运行.

```javascript
// 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` 在一个单一测试范围内的多次,将简单地将所有解析器合并为一个单一根.

> \[注\] 这些代码实例的工作版本可见于 [这个加登的测试应用](https://npmcn.com/package/%40bagaar/ember-graphql-mocking/test-app/)。 。 。 .

## 捐款

见 [捐款](https://npmcn.com/package/%40bagaar/ember-graphql-mocking/CONTRIBUTING.md) 详细指南.

## 许可证

本项目根据以下规定获得许可证: [MIT 许可证](https://npmcn.com/package/%40bagaar/ember-graphql-mocking/LICENSE.md)。 。 。 .

## 常见问题

### @bagaar/ember-graphql-mocking 是什么？

使用 Mock Service Worker\(MSW\) 来模拟 GraphQL 请求的 Ember 附加\.

### 如何安装 @bagaar/ember-graphql-mocking？

在项目目录运行 npm install @bagaar/ember-graphql-mocking，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：msw（\>= 2\.0\.0）、graphql（\>= 16\.0\.0）、ember-source（^5\.12\.0 \|\| ^6\.0\.0 \|\| ^7\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bagaar/ember-graphql-mocking 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @bagaar/ember-graphql-mocking 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @bagaar/ember-graphql-mocking 可以商用吗？

@bagaar/ember-graphql-mocking 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bagaar/ember-graphql-mocking 的下载量有多少？

根据 npm 官方下载统计，@bagaar/ember-graphql-mocking 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,030 次，日均约 101 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bagaar/ember-graphql-mocking 还在维护吗？

最新版本 1\.1\.0 发布于 2026/11/05（2 天前）；至今共发布 17 个版本，其中过去 12 个月发布了 4 个；首次发布于 2022/02/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

