欢迎订阅专栏:3分钟Solidity--智能合约--Web3区块链技术必学
Foundry Basic
Foundry 是一套用 Rust 编写的以太坊(EVM)智能合约开发工具链,由 Paradigm 团队开源维护。 它以"极速、可移植、模块化"为设计目标,将编译、测试、部署、交互等流程整合在同一 CLI 中,是目前性能最突出的 Solidity 开发框架之一 。
如需获取此内容的最新版本,请访问 Cyfrin.io 上的 Foundry Basic(代码示例)。
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
import {Test, console2, stdError} from "forge-std/Test.sol";
contract Counter {
uint256 public count;
function inc() external {
count += 1;
}
function dec() external {
count -= 1;
}
}
contract CounterTest is Test {
Counter public counter;
// 在每个测试之前调用
function setUp() public {
counter = new Counter();
}
function testInc() public {
counter.inc();
assertEq(counter.count(), 1);
}
function testFailDec() public {
// 这将因下溢而失败
counter.dec();
}
// 与testFailDec相同
function testDecUnderflow() public {
vm.expectRevert(stdError.arithmeticError);
counter.dec();
}
function testDec() public {
counter.inc();
counter.inc();
counter.dec();
assertEq(counter.count(), 1);
}
}