DApp设计与开发 课程笔记(二):remix | hardhat | 测试驱动开发
笔记对应课程内容为成都信息工程大学区块链产业学院老师梁培利的DApp 设计与开发 04-06 课
笔记中提到的名词不做过多解释 不懂就搜!
Remix IDE的基本使用
官网:https://remix.ethereum.org/
- 建议使用其网页版而不是桌面版,侧重于比较实用的特性而不是全部的介绍。
- 支持编写合约,部署合约(正式网络,测试网和本地测试网络),合约Debug,合约测试
- 提供的默认环境是VM(Virtual Machine)环境,也就是虚拟环境。如果要使用公链测试网络需要利用钱包,默认用 metamask 。
- 教学采用了OKT测试网络和测试币,链上交互非常慢,起码需要8秒钟。读合约不用花钱。
- 不太喜欢将Remix作为一个线上IDE来使用,那么可以将其作为一个本地编辑器
Access file system using remixd
。需要安装Nodejs
,然后安装npm intall remixd
。然后可以通过命令行启用访问本地文件。 - 在前期学习过程中,使用Remix IDE来进行智能合约调试测试要比写脚本来完成方便许多也要容易许多。
Hardhat的基本使用
- 其他人合作人员需要的是合约地址“
ca
”和字节码“bytecode
”,字节码也就是abi
- 在Solidity中
console.log
和print
类似,可用作调试 - Remix可以使用Hardhat的虚拟机,填写ip和端口即可
- 在
hardhat.config.js
文件中可以自定义测试网并部署,--network testnet
.
测试驱动开发模式
测试驱动开发(Test Driven Development),是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
- 传统软件开发模式:需求分析,程序和产品对齐细节,测试,调试,QA测试,上线,新需求编程,测试。
- 区块链行业特别适合测试驱动开发。
-
测试驱动开发的好处:降低开发者负担,保护网,提前澄清需求,快速反馈
-
实施测试驱动开发的要点:
- 1.分析问题并拆分:把问题分解成一个个可以操作的任务;
- 2.代码设计:规划、设计功能的实现;
-
写测试的预期结果
expect(xx).to.equal("??")