简介
@ethereum-waffle/chai 是一个基于 chai.js 的扩展,主要针对以太坊合约的测试,提供了以太坊合约相关的常用断言和工具函数,方便开发者进行更加全面的测试。
本文将介绍 @ethereum-waffle/chai 的安装和使用,旨在帮助前端工程师更好地进行以太坊合约测试开发。
安装
使用 npm 进行全局安装:
npm install -g @ethereum-waffle/chai
或者在项目中安装依赖:
npm install --save-dev @ethereum-waffle/chai
使用
@ethereum-waffle/chai 主要提供了以下几个方面的功能:
- 断言
- 工具函数
断言
1. expect 资产相等
语法 | expect(foo) |
---|---|
描述 | 判断 foo 是否与另一个值 bar 相等 |
例子 | expect(foo).to.equal(bar) |
2. to.exist 和 to.not.exist
语法 | expect(foo).to.exist / to.not.exist |
---|---|
描述 | 判断 foo 是否存在 / 不存在 |
例子 | expect(5).to.exist |
3. to.be.true 和 to.be.false
语法 | expect(foo).to.be.true / to.be.false |
---|---|
描述 | 判断 foo 是否为 true / false |
例子 | expect(true).to.be.true |
4. to.be.above 和 to.be.below
语法 | expect(foo).to.be.above(bar) / to.be.below(bar) |
---|---|
描述 | 判断 foo 是否大于 / 小于 bar |
例子 | expect(5).to.be.above(3) |
5. to.match
语法 | expect(foo).to.match(regexp) |
---|---|
描述 | 判断 foo 是否符合正则表达式 regexp |
例子 | expect('hello').to.match(/h.*o/) |
6. to.be.null
语法 | expect(foo).to.be.null |
---|---|
描述 | 判断 foo 是否为 null |
例子 | expect(null).to.be.null |
7. to.be.empty
语法 | expect(foo).to.be.empty |
---|---|
描述 | 判断 foo 是否为空(对象、数组、字符串等) |
例子 | expect([]).to.be.empty |
8. to.be.instanceOf
语法 | expect(foo).to.be.instanceOf(bar) |
---|---|
描述 | 判断 foo 是否为 bar 实例 |
例子 | expect(new String('hello')).to.be.instanceOf(String) |
工具函数
@ethereum-waffle/chai 还提供了一些实用的工具函数,如以下示例所示:
-- -------------------- ---- ------- ------ - ----- - ---- ------------------------ ----- - ----------- ----------- - - ------ ----------------- -------- -- - ---------- ------- ----- -- -- - ----- ------ - ------------------ ------------------------------- ----------------------- --- ----------- ------- ----- -- -- - ----- ------ - ----------------------------------- -------------------- ------- --- ---
总结
本文介绍了 @ethereum-waffle/chai 的安装和使用,重点介绍了它提供的断言和工具函数。希望读者可以在实际项目中尝试使用它,对于以太坊合约开发的测试起到一定的帮助和指导作用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedac3bb5cbfe1ea061098e