该存储库包含实用方法,这些方法与测试库(如 )结合使用Jest
,可在使用 Cadence 构建 Flow dapp 时提高您的工作效率。
- 假设您在 Node 环境下使用这个框架。您至少需要版本12.0.0
- 在后台运行 Flow Emulator。您可以将它与 Flow CLI 一起安装。 有关说明,请参阅安装 Flow CLI。
- 如果您已经安装了它,请在终端中运行
flow init
以创建flow.json
配置文件。然后用 启动模拟器flow emulator -v
。
每个 Playground 项目都能够将export
其内容作为一组带有 Cadence 模板代码和“开箱即用”基本测试环境的文件。
如果要使用此功能:
- 按右上角的“Export”按钮
- 选择项目的名称 - 或保留自动生成的版本
- 在弹出窗口中按“Export”按钮
Playground 将为您创建一个zip
文件,您可以将其保存在任何您喜欢的地方。
Playground 导出的 Zip 中包含 cadence
目录和 test
目录,
安装相关依赖,你可以在命令行中执行如下命令:
npm install flow-js-testing jest @babel/core @babel/preset-env babel-jest @onflow/types
或者直接进入 test
目录下运行:
yarn install
// 初始化项目 生成 flow.json 文件
yarn init-flow
// 启动本地模拟器
yarn start-emulator
创建一个 deploy.test.js
的测试实例, 测试创建账户的功能:
import path from "path";
import { getAccountAddress, init } from "flow-js-testing";
const basePath = path.resolve(__dirname, "../cadence");
beforeAll(() => {
init(basePath);
});
describe("Accounts", () => {
test("Create Accounts", async () => {
const Alice = await getAccountAddress("Alice");
const Bob = await getAccountAddress("Bob");
const Charlie = await getAccountAddress("Charlie");
const Dave = await getAccountAddress("Dave");
console.log("Four accounts were created with following addresses:\n", {
Alice,
Bob,
Charlie,
Dave,
});
});
});
其中,在开始一定要指定你的 Cadence 文件所在的目录,如果你是从Playground导出的源码,那么只需要写如下内容:
const basePath = path.resolve(__dirname, "../cadence");
执行 如下命令进行测试:
yarn jest
注意: Playground 导出的 Cadence
文件中,关于 import flow-js-testing
相关依赖的代码,需要略微修改,去除掉 dist
及其后缀路径,否则可能无法运行,后续版本应该会进行更新。
源码仓库: https://github.com/onflow/flow-js-testing
更多框架 API : https://github.com/onflow/flow-js-testing/blob/master/docs/api.md
HelloWorld Playground: https://play.onflow.org/721446c9-54d6-4073-9776-5b4fc8b93fb2?type=account&id=0