3分钟Solidity: 14.5 Foundry发送测试

0 阅读1分钟

欢迎订阅专栏3分钟Solidity--智能合约--Web3区块链技术必学

Foundry 发送

要获取此内容的最新版本,请访问 Cyfrin.io 上的 Foundry 发送(代码示例)

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

import "forge-std/Test.sol";

// 交易和恶作剧的示例
// deal(address, uint) - 设置地址的ETH余额
// deal(address, address, uint256) - 设置ERC20代币余额(适用于大多数代币)
// hoax(address, uint) - deal + prank

contract ERC20 {
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
}

contract SendTest is Test {
    ERC20 token = new ERC20();

    function testSendEth() public {
        // 设置ETH余额
        deal(address(1), 100);
        assertEq(address(1).balance, 100);

        // 设置ERC20余额
        deal(address(token), address(1), 10);
        assertEq(token.balanceOf(address(1)), 10);
    }
}

Try on Remix