Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 1.33 KB

File metadata and controls

47 lines (38 loc) · 1.33 KB

单元测试与集成测试

单元测试

单元测试用于检测单元模块的代码逻辑, 从内部测试合约代码, 无法检测一些外部 API 和宏

lib.rs 所示, 用 #[cfg(test)] 标注测试模块, 用 #[test] 标注测试任务, 测试主要使用 near_sdk::test_utils 模块

运行单元测试

运行单元测试

cargo test

集成测试

集成测试需要使用 workspaces, 会在本地起一个 sandbox, 模拟链上环境, 可以进行外部测试. 有 workspaces-rsworkspaces-js 两种版本. 其中 JS 版本更加契合外部调用合约的习惯, 因此本教程选择 JS 版本

安装 workspaces

pnpm add near-workspaces -D

安装 jest

workspaces 并不具备测试能力, 因此需要配合测试框架使用, 本教程使用 jest 作为测试框架

pnpm add ts-jest jest @types/jest -D

jest.config.json 中配置 jest

{
  "preset": "ts-jest",
  "detectOpenHandles": true,
  "testTimeout": 60000
}

运行集成测试

jest 会自动寻找后缀为 .sepc.ts.test.ts 的文件并执行测试代码

pnpm test

运行示例测试代码

make all