上文,我们基于Forge标准库Test合约来编写了EtherStoreTest合约,本文来进一步介绍Forge标准库里的内容。

Forge标准库提供了以下功能:

  • Vm.sol:最新的作弊码(cheatcodes)接口。
  • console.solconsole2.sol:包含了Hardhat风格的日志功能。
  • Script.solSolidity Scripting的基础工具。
  • Test.sol:DSTest的超集,包含了标准库,作弊码接口(vm)和Hardhat控制台。

在上文中,我们通过导入Test.sol文件,然后在我们的合约中继承Test:

import "forge-std/Test.sol";
import "../src/Re-Entrancy.sol";

contract EtherStoreTest is Test {

}

现在,我们就可以使用以下代码:


// 修改msg.sender为alice
vm.startPrank(alice);

// 断言alice的DAI
assertEq(dai.balanceOf(alice), 10000e18);

// 使用Hardhat记录日志
console.log(alice.balance);

// 使用Forge Std库的接口
deal(address(dai), alice, 10000e18);