AERGO SHIP:用于开发智能合约的包管理器(3)

dependencies - 引用的包的名称。包是指存储库中安装的项目的类型。

tests - 测试源的路径。顾名思义,这是一种数组类型。

endpoint - AERGO服务器部署和运行以进行集成测试的主机名和端口信息。 $ {hostname}:设置为$ {port}。默认值为“localhost:7845”。

由于当前状态没有变化,我们将继续下一步。

编写智能合约

现在,让我们来编写一段简单的代码。源是src / main / lua / main.lua。

function min(a, b)
if (a < b) then
return a
else
return b
end
end

我写了一个min函数,该函数选取了两个数字并返回其中较小的数字。目前,AERGO支持的智能合约基于语言lua。让我们来构建当前的源代码。

$ ship build

如果没有问题,则创建app.lua文件。如果打开此文件,它与src / main / lua / main.lua完全相同,因为您可能只有一个文件要创建。如果继续修改源并查看其更改方式,则可以看到该构建如何组合文件。

此前,SHIP表示可以将多个文件合并为一个。现在,让我们重构main.lua文件。您可以使用import命令从一个源引用另一个源。将min函数移到src / main / lua / utils.lua,将现有的main.lua替换为:

import “./utils.lua”

如果进行重新构建,则可以看到app.lua文件与之前相同。

创建单元测试

让我们为刚创建的utils.lua中的min函数编写一个单元测试。我们将在src / test / lua / test-utils.lua中编写测试代码。下一次如果有机会,我会更详细地讨论用于测试的API,这次仅显示示例。

import “aergoio/athena-343”
local suite = TestSuite(‘test suite for utils.lua')
suite:add(TestCase(‘test min', function()
assertEquals(3, min(3, 4))
end))
suite:run()

在aergo.json中添加一个测试条目,告知SHIP这是一个用于测试的文件。

{
“name” : “bylee/my-first-project”,
“source” : “src/main/lua/main.lua”,
“target” : “app.lua”,
“tests”: [ “src/test/lua/test-utils.lua” ]
}

要运行测试,请运行以下命令:

$ ship test
ERROR : "Package aergoio/athena-343 not found: /Users/bylee/.aergo_modules/aergoio/athena-343/aergo.json"
When you run the test, you get an error because the aergoio / athena-343 that you use as a test framework is not installed. Now, let's install the package in github.
$ ship install aergoio/athena-343

实验部分

增量构建

SHIP具有强大的构建能力。此功能可检测项目中文件的更改,并对其进行自动构建和测试。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1504.html