# 浏览器测试与模拟应用

在浏览器中验证生命周期与 CSP，并从契约生成测试提供方。

需要 WU CLI `1.2.0`，应用 API 需要 WU Framework `4.0.0`。请检查 `wu --version` 和项目依赖。

<span id="pruebas-node-y-navegador"></span>

<span class="section-anchor" id="section-1"></span>

## Node 与浏览器测试

```sh
wu test
wu test --watch
npm install --save-dev @playwright/test
npx playwright install chromium
wu test --browser --csp strict --trusted-types --json
```

不带 `--browser` 时，`wu test` 执行 `node --test` 并转发其余参数及输出。带 `--browser` 时改用 Chromium 生命周期验证：读取配置中的应用，按需启动开发服务器，检查挂载、更新、隐藏、恢复及清理。成功返回 `0`，检查失败返回 `1`，准备失败返回 `2`。

| 选项 | 用途 |
| --- | --- |
| `--url <origin>` | 使用已有服务器。 |
| `--port <port>` | 启动服务器的端口，默认为 `3999`。 |
| `--only <app>` | 按名称筛选应用，可重复。 |
| `--cycles <n>` | 范围 `2` 到 `20`，默认为 `2`。 |
| `--timeout <ms>` | 范围 `1000` 到 `120000`，默认为 `30000`。 |
| `--csp <mode>` | 默认 `scripts`，也支持 `strict` 或 `off`。 |
| `--trusted-types` | 添加 Trusted Types 指令。 |
| `--channel <name>` | Chromium 通道，也可用 `WU_BROWSER_CHANNEL`。 |
| `--headed`, `--verbose`, `--json` | 可见窗口、详细输出或 JSON 报告。 |

<span id="generar-un-proveedor-mock"></span>

<span class="section-anchor" id="section-2"></span>

## 生成模拟提供方

将此描述保存为工作区的 `counter.json`：

```json
{ "name": "counter", "version": "1.1.0", "methods": {
  "double": { "input": { "type": "number" }, "output": { "type": "number" } }
} }
```

```sh
wu mock counter.json --name counter-mock --dir mf-counter-mock --json
wu install
wu dev
```

`wu mock` 生成可运行微应用、符合模式的响应及 `wu.config.json` 条目。可编辑 `src/samples.js` 修改数据；应用会展示方法与调用。默认名称由服务名加 `-mock` 得到，`--dir` 指定目录。`--force` 允许替换已有目标，使用前应检查其内容。

生成成功返回 `0`；契约、参数或项目无效返回 `2`。模拟应用用于按契约开发，不实现真实业务逻辑。生命周期测试也不能替代界面功能测试。发布前应验证两者。