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具有强大的构建能力。此功能可检测项目中文件的更改,并对其进行自动构建和测试。