3分钟Solidity: 14.1 Foundry框架基础

1 阅读1分钟

欢迎订阅专栏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);
    }
}

Try on Remix