http://www.7klian.com

区块链智能合约测试的能力与实践

首先,我们写一个HelloWorld合约:

| $$ \ | $$ \$$ \| $$ | $$ | $$ | $$ $| $$ | $$ | $$\$$ \


Hello, World!
transaction hash: 0x72c8a95b651fb5d12c44b69624d5213d58af1509f00920757fce94d019b5eae8
具体筹备事情可参考《FISCO BCOS零基本入门,五步轻松构建应用》和FISCO BCOS官方文档,此处不再赘述。FISCO BCOS官方文档地点:

『祸乱生于疏忽,测试先于交付』,假如这些缺陷和裂痕在测试环节被发明,就能有效制止损失。

constructor() public {
contract address: 0x34e95689e05255d160fb96437a11ba97bb31809f
前置筹备



_owner = owner;


关于WeBASE-Front的先容可参考《WeBASE节点前置组件成果理会》与《安装陈设说明》。《安装陈设说明》地点:
| | \/ \ / \ / \ | \ / \ / \ / \
[group:1]> call HelloWorld 0x34e95689e05255d160fb96437a11ba97bb31809f name
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
=============================================================================================
contract BasicAuth {
上述例子演示了如何利用节制台陈设与调试合约。节制台设计简捷优雅,利用体验如丝般顺滑。不外,在处理惩罚一些巨大场景,譬喻需要切换外部账户,或通过可视化界面举办操纵时,WeBASE-Front临危不惧地扛起大旗。
Hello, test!
· SDK:譬喻集成Java Web3sdk,建设一个Java项目,并编写应用和测试代码。合用于对智能合约质量要求较高、要求测试案例可复用、业务逻辑巨大或要求一连集成的场景。
合约被乐成陈设后就可以开始测试了。我们先打印这个合约中name的值,然后修改为新的值,最后从头查询name中的值。
[group:1]> call HelloWorld 0x34e95689e05255d160fb96437a11ba97bb31809f name
}


[group:1]>
区块链的成长陪伴着信息安详的话题。在Solidity不长的成长过程中,产生过不止一次耸人听闻、影响深远的安详进攻事件,给一些机构和组织造成不行挽回的损失。


________ ______ ______ ______ ______ _______ ______ ______ ______
[group:1]> deploy HelloWorld
进入测试前,需要完成以下步调:链的搭建、节制台安装、智能合约开拓、智能合约编译与陈设、操作Java等SDK开拓一个应用。

_;
contract HelloWorld{

· 节制台:提供呼吁行交互界面,通过在节制台建设合约和输入挪用、查询指令,来举办简朴调试。合用于很是简朴的合约。


public

测试情况
require(msg.sender == _owner, "BasicAuth: only owner is authorized.");
接下来,我们演示一个需要切换外部账户的测试案例,以下是合约代码:
Welcome to FISCO BCOS console(1.0.8)!
接下来将通过一个合约示例来讲授如何运用节制台举办测试。
前文先容了Solidity的前世此生、语法特性、设计模式、编程攻略和底层道理。作为系列终篇,本文将重点先容和分享Solidity的测试场景、要领和
实践。

=============================================================================================
| $$$$$$$$\$$$$$| $$$$$$| $$$$$$| $$$$$$\ | $$$$$$$| $$$$$$| $$$$$$| $$$$$$\
[group:1]> call HelloWorld 0x34e95689e05255d160fb96437a11ba97bb31809f set "Hello, test!"


| $$__ | $$ | $$___\$| $$ \$| $$ | $$ | $$__/ $| $$ \$| $$ | $| $$___\$$



\$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$
}





constructor() public{

在合约打点-合约IDE中,建设test文件夹,并复制合约代码:

{
· WeBASE-Front:提供可视化交互界面以及浅易的IDE情况。合用于业务逻辑并不巨大的合约,更推荐开拓人员举办一些调试。

_owner = msg.sender;
pragma solidity ^0.4.25;

}
[group:1]>
FISCO BCOS 2.0及以上版本提供了利便易用的呼吁行终端、『开箱即用』的
区块链利器,详情可参考《FISCO BCOS 节制台详解,飞一般的区块链体验》。
| $$ | $$ \\$$ $$\$$ $$\$$ $$ | $$ $$\$$ $$\$$ $$\$$ $$
然后,将这个合约定名为HelloWorld.sol,并生存到节制台地址的contracts/solidity/路径下。随后,执行./start.sh 启动节制台并陈设合约:
}

FISCO BCOS提供节制台、WeBASE-Front和SDK代码测试,这三种情况合用于差异测试场景:

}

pragma solidity ^0.4.25;


节制台测试
address public _owner;
在这个示例中,合约owner被自动赋值为合约陈设者。修饰器onlyOwner抉择了setOwner函数只能由_owner用户来提倡。

https://fisco-bcos-documentation.readthedocs.io/zh...

WeBASE-Front为开拓者提供了运行焦点信息的可视化操纵、Solidity开拓的IDE情况以及私钥打点成果,,让各人更便捷地开启区块链之旅。
}
function setOwner(address owner)


| $$$$$ | $$ _\$$$$$$| $$ __| $$ | $$ | $$$$$$$| $$ __| $$ | $$_\$$$$$$\

| $$ _| $$_| \__| $| $$__/ | $$__/ $$ | $$__/ $| $$__/ | $$__/ $| \__| $$




string public name;

https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Install/developer.html#

WeBASE-Front测试
name = "Hello, World!";



onlyOwner
function set(string n) public{

name = n;




测试是智能合约开拓与交付进程中至关重要的一环。其能有效检讨实际功效是否切合设计预期,有助识别错误、查缺补漏。同时,高质量、可复用的测试,尚有助于晋升整体开拓效率。

modifier onlyOwner() {
}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读