题目
一个团队的钱包流程此前只做手工回归:每次发版前用真实钱包点一遍连接、切链、签名与交易。最近两次发版分别漏掉了「用户取消授权」与「交易 reverted」的分支。请说明如何用 mock connector 把钱包流程纳入自动化测试。
考察目标
- mock connector 的参数与可控失败开关。
- 测试环境与生产环境的配置差异。
- 失败路径、集成验证与真实钱包回归的边界。
用 mock 的可控失败开关覆盖连接与签名分支,并保留真实钱包的手工回归。
一个团队的钱包流程此前只做手工回归:每次发版前用真实钱包点一遍连接、切链、签名与交易。最近两次发版分别漏掉了「用户取消授权」与「交易 reverted」的分支。请说明如何用 mock connector 把钱包流程纳入自动化测试。
wagmi 提供 mock connector,用于在测试与本地开发中模拟连接行为:accounts 参数提供模拟账户,features 开关可以分别控制连接、重连、签名与切链步骤是否抛出错误。因此在不需要安装扩展的前提下,可以覆盖连接、切换账户、断开与失败分支。mock 无法覆盖真实钱包的注入时序与移动端扫码流程,真实钱包的手工回归仍有必要。实现差异与工程取舍见深入回答。
import { http, createConfig } from "wagmi";
import { mainnet, sepolia } from "wagmi/chains";
import { mock } from "wagmi/connectors";
export const testConfig = createConfig({
chains: [mainnet, sepolia],
connectors: [
mock({
accounts: ["0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"],
features: { connectError: true },
}),
],
transports: {
[mainnet.id]: http(),
[sepolia.id]: http(),
},
});
示例省略了测试框架与 Provider 封装,账户为公开的测试地址。
发现这道题有问题? 反馈此题