本篇课程开始,我们来学习一下如何使用solidity开发智能合约,由于博主对于solidity的学习,也是自学的,所以一些不足或有纰漏之处还望指出,大家共同进步,本系列课程会分很多节课讲述,从入门到进阶、实战,在课程最后,我们会通过所学知识来搭建几个不同类型的智能合约如Token合约、NFT合约等等,感兴趣的小伙伴加个关注吧。一、什么是智能合约这里引用一段摘自网络的话语来解释一下 智能合约是区块链中四大核心技术之一,这个概念最开始是在1994年,由知名密码学家尼克·萨博提出的,可由于技术以及其他的一些原因一直都没有落地,哪怕到了今天,智能合约已经在互联网中很多的应用,比如自动还款,无人机售货等
本篇课程开始,我们来学习一下如何使用solidity开发智能合约,由于博主对于solidity的学习,也是自学的,所以一些不足或有纰漏之处还望指出,大家共同进步,本系列课程会分很多节课讲述,从入门到进阶、实战,在课程最后,我们会通过所学知识来搭建几个不同类型的智能合约如Token合约、NFT合约等等,感兴趣的小伙伴加个关注吧。一、什么是智能合约这里引用一段摘自网络的话语来解释一下 智能合约是区块链中四大核心技术之一,这个概念最开始是在1994年,由知名密码学家尼克·萨博提出的,可由于技术以及其他的一些原因一直都没有落地,哪怕到了今天,智能合约已经在互联网中很多的应用,比如自动还款,无人机售货等
Python在测试圈的应用非常广泛,特别是在自动化测试以及测试开发的领域,其中在自动化测试中我们常用的测试框架是uniitest和pytest,本文将带领大家搭建以及熟悉pytest的使用。既然有unittest那么为什么还要用pytest呢?这是因为pytest有以下的特点:入门简单,文档丰富,而且文档中有很多实例参考支持参数化,可以从教细的力度控制测试用例能够支持简单的单元测试和复杂的功能测试支持测试跳过,失败case标记支持失败重试支持由nose,unittest编写的测试用例支持HTML报告和jenkins持续集成很方便具有很多第三方插件,并且可以自定义扩展 01安装pytes
Python在测试圈的应用非常广泛,特别是在自动化测试以及测试开发的领域,其中在自动化测试中我们常用的测试框架是uniitest和pytest,本文将带领大家搭建以及熟悉pytest的使用。既然有unittest那么为什么还要用pytest呢?这是因为pytest有以下的特点:入门简单,文档丰富,而且文档中有很多实例参考支持参数化,可以从教细的力度控制测试用例能够支持简单的单元测试和复杂的功能测试支持测试跳过,失败case标记支持失败重试支持由nose,unittest编写的测试用例支持HTML报告和jenkins持续集成很方便具有很多第三方插件,并且可以自定义扩展 01安装pytes
目录1、前言2、标记跳过(一)无条件跳过skip(二)有条件跳过skipif(三)使用pytest.skip(reason)函数标记跳过(四)跳过整个模块3、标记预期失败(一)参数详解(二)使用pytest.xfail(reason)函数标记预期失败(三)示例(四)忽略xfail标识(五)xfail总结1、前言引用自官方文档您可以标记无法在某些平台上运行或您预计会失败的测试功能,以便pytest可以相应地处理它们并提供测试会话的摘要,同时保持测试套件绿色。跳过(skip)意味着您希望测试仅在满足某些条件时才能通过,否则pytest应该完全跳过运行测试。常见的例子是跳过非Windows平台上的纯
目录1、前言2、标记跳过(一)无条件跳过skip(二)有条件跳过skipif(三)使用pytest.skip(reason)函数标记跳过(四)跳过整个模块3、标记预期失败(一)参数详解(二)使用pytest.xfail(reason)函数标记预期失败(三)示例(四)忽略xfail标识(五)xfail总结1、前言引用自官方文档您可以标记无法在某些平台上运行或您预计会失败的测试功能,以便pytest可以相应地处理它们并提供测试会话的摘要,同时保持测试套件绿色。跳过(skip)意味着您希望测试仅在满足某些条件时才能通过,否则pytest应该完全跳过运行测试。常见的例子是跳过非Windows平台上的纯
目录1、标记实现参数化示例1:单个参数示例2:多个参数示例3:多个参数化(笛卡尔积)示例4:ids参数给用例起别名示例5:使用indirect处理参数值示例6:标记数据1、标记实现参数化通过@pytest.mark.parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)装饰器来实现参数化。参数说明:argnames:参数名,使用逗号分隔的列表,或元祖,或字符串,表示一个或多个参数名,【常用】argvalues:参数值,可以是列表、元祖、字典列表、元祖列表,【常用】indirect:中文翻译为中间人,为True时可以对
目录1、标记实现参数化示例1:单个参数示例2:多个参数示例3:多个参数化(笛卡尔积)示例4:ids参数给用例起别名示例5:使用indirect处理参数值示例6:标记数据1、标记实现参数化通过@pytest.mark.parametrize(argnames,argvalues,indirect=False,ids=None,scope=None)装饰器来实现参数化。参数说明:argnames:参数名,使用逗号分隔的列表,或元祖,或字符串,表示一个或多个参数名,【常用】argvalues:参数值,可以是列表、元祖、字典列表、元祖列表,【常用】indirect:中文翻译为中间人,为True时可以对
目录8、Fixture带返回值9、Fixture实现参数化10、可靠的Fixture写法(一)一个不可靠Fixture的例子(二)修改成可靠Fixture的例子8、Fixture带返回值在fixture中我们可以使用yield或者return来返回我们需要的东西,如测试数据,数据库连接对象,文件对象等。没有后置处理直接采用return的方式返回数据(yield也可以)importpytest@pytest.fixture()defdata_fixture():return["a","b","c"]deftest_case(data_fixture):print(f"测试数据为:{data_fi
目录8、Fixture带返回值9、Fixture实现参数化10、可靠的Fixture写法(一)一个不可靠Fixture的例子(二)修改成可靠Fixture的例子8、Fixture带返回值在fixture中我们可以使用yield或者return来返回我们需要的东西,如测试数据,数据库连接对象,文件对象等。没有后置处理直接采用return的方式返回数据(yield也可以)importpytest@pytest.fixture()defdata_fixture():return["a","b","c"]deftest_case(data_fixture):print(f"测试数据为:{data_fi