remix内其实也是可以通过编写测试文件来测试智能合约的,需要使用插件自动生成框架以及测试结果。本文介绍一个简单的HelloWorld合约来讲解
安装插件多重检测:
(solidity unit testing)
编译部署HelloWorld合约
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
// 定义一个映射来存储每个ID对应的问候语
mapping(uint256 => string) private greetings;
// 设置问候语
function setGreeting(uint256 id, string memory _greet) public {
greetings[id] = _greet;
}
// 获取问候语
function getGreeting(uint256 id) public view returns (string memory) {
return greetings[id];
}
}
点击刚才的插件页面
点击Generate
把右边生成的代码删成
然后进行代码编写,成功如下:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
import "remix_tests.sol";
import "remix_accounts.sol";
import "../contracts/HelloWorld.sol";
contract testSuite {
HelloWorld helloWorld;
function beforeAll() public {
helloWorld = new HelloWorld();
}
function testOne() public{
helloWorld.setGreeting(1,"hello,solidity");
(string memory greet) = helloWorld.getGreeting(1);
Assert.equal(string("hello,solidity"),greet,"error:the code is error");
}
}
补充:
- 使用的语言是solidity语言
- 这个文件是用于在 Remix IDE 中测试
HelloWorld
合约的功能。测试框架remix_tests.sol
提供了一些工具和断言方法,用于验证合约的行为是否符合预期。 remix_accounts.sol
提供了多个账户,方便测试合约在不同账户下的行为。
至此,结束~求点赞求收藏