refer to:
https://ethereum.stackexchange.com/questions/143171/hardhat-vs-foundry-which-to-use-for-testing
https://jamesbachini.com/hardhat-vs-foundry/ 这个文章很精彩
先说下我这些天使用foundry的感受:
1. 速度超级快,运行一个unit test大概不到一秒钟,瞬间搞定,非常爽。
2. 不需要配置乱七八糟的node module, solc-js, 好像 foundry 会自动对不同版本的 .sol文件进行编译
3. 单元测试超级友好。用起来立刻上手,完美让程序员从其他TDD框架过渡。 (setup , testxxx, assertEq) .
而且自带console, console2. 用起来不要太爽。
而且自带 -vvvv , --debug, 可以直接看到各种变量。
4. 使用solidity语言。这个太棒了。之前用hardhat, 部署麻烦,单元测试麻烦,调用麻烦。因为你可以用ether.js 也可以用web3.js 两个js库的调用方式完全不同。记不住。而且速度奇慢。
solidity语言则可以统一步调,完美夸合约调用方法。直接 ContractName(some_address).some_method() 即可。
5. 部署合约方便。forge deploy 就可以部署。 (吐槽hardhat: 还搞乱七八糟的可升级合约,吐槽truffle: 还搞migration... )
调用合约方便,写个脚本就可以调用。 (forge test)
6. 周边工具很多很好,例如anvil, forge test
综上,每一点都解决了痛点。
下面是其他人的感受:https://www.reddit.com/r/ethdev/comments/13yd95m/foundry_or_hardhat/
基本上都是一面倒的使用foundry, 原因是:
1。 速度更快
2。 使用solidity 编写单元测试,而不是js , 这一点强太多了。
github: hardhat 6k foundry : 7k
3. 全栈开发的用hardhat, solidity专业人士用foundry ( code audit )
4. hardhat 貌似无法部署到 foundry上?anvil?
弃坑了。