PRB-Test 使用教程
1. 项目目录结构及介绍
PRB-Test
是一个专为 Solidity 设计的现代测试断言和日志实用程序库,它旨在作为 DSTest 的替代品,提供更丰富和可靠的测试功能。下面是其基本的目录结构概述及其主要文件介绍:
-
src
: 源代码目录,包含核心的PRBTest.sol
合约,这是主要的测试框架。PRBTest.sol
: 定义了扩展自 DSTest 的测试基类,增加了更多断言方法。
-
editorconfig
: 规定了代码编辑器的配置标准,确保代码风格统一。 -
gitignore
: 指定了 Git 应忽略的文件类型或文件夹。 -
prettierrc.yml
,prettierignore
: 美化代码的规则配置,以及指定不需要美化处理的文件或目录。 -
solhint.json
: Solidity 代码检查工具 Solhint 的配置文件。 -
foundry.toml
: Foundry 配置文件,用于定制 Foundry 构建和测试过程。 -
package.json
: 包含 npm 相关依赖和脚本,如果你的项目使用 npm 或 yarn 进行管理时相关。 -
CHANGELOG.md
: 记录项目的所有版本更新和变更细节。 -
LICENSE.md
: 项目使用的许可证说明,本项目采用 MIT 许可证。 -
README.md
: 项目简介,快速入门指导,包括安装和基本使用。
2. 项目的启动文件介绍
在 PRB-Test
中,并没有传统意义上的“启动文件”,因为这是一个库而非独立应用。但是,当你在自己的智能合约项目中集成 PRB-Test 时,你的测试合约将成为“启动”点。比如,创建一个新的测试合约并继承 PRBTest
类,从这里开始编写你的测试案例。以下是一个简化的示例启动点:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import "@prb/test/PRBTest.sol";
contract MyTest is PRBTest {
function testExample() public {
vm.warp(block.timestamp + 100); // 设置虚拟时间
emit Log("Hello World");
assertTrue(true); // 断言条件
}
}
这个合约就是你在进行项目测试时的入口。
3. 项目的配置文件介绍
.editorconfig
位于根目录的.editorconfig
文件负责定义文本编辑器的编码、缩进等格式设置,帮助开发者保持一致的代码风格。
gitignore
该文件列出应被Git忽略的文件模式,例如编译后的Solc中间件文件、IDE特定文件等,以保持仓库清洁。
prettierrc.yml
用于配置代码美化工具Prettier的具体设定,如缩进、换行符等,保证代码格式的一致性。
solhint.json
Solhint的配置文件,定制Solidity代码规范检查的规则,确保编码质量。
foundry.toml
对于使用Foundry构建和测试的项目,foundry.toml
是至关重要的配置文件,允许你调整编译和测试环境,如指定源码路径、编译目标等。
通过上述文档和配置,可以系统地理解和运用PRB-Test到你的智能合约开发和测试过程中。