Specron Framework – Specron框架区块链毕设代写

区块链毕设代写本文提供国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,Specron Framework – Specron框架区块链毕设代写 是一篇很好的国外资料

Specron Framework

Specron Framework - Specron框架 Specron Framework - Specron框架

Specron is a lightweight, open source, magic-free framework for testing smart contracts written in Solidity. The testing suite is built on top of the Hayspec framework thus using TypeScript is supported.

Specron provides development environment for the Ethereum blockchain and includes useful tools which enable developers to easily write tests for smart contracts.

The source code is available on GitHub where you can also find our issue tracker.

Installation

Start by installing the Specron command-line tool.

$ npm install -g @specron/cli web3 solc

Specron depends on the latest web3 and solc packages, so make sure you have them globally installed. Specron also uses promises thus you need to use Promise polyfill when promises are not supported.

Getting started

Specron automates the testing process of your Solidity code. It doesn’t require you to install certain applications in order to get started.

The Specron interface is designed to fully support the power of TypeScript when writing tests. It is magic-free which means you have a complete control and visibility of what the code does and how tests are executed. The testing flow should look familiar to any JavaScript or TypeScript developer.

Project initialization

Start by creating a new project folder.

$ mkdir myproject $ cd myproject

Initialize the project and install the dependencies.

$ specron init $ npm install

Run tests to verify everything works as expected.

$ npm test

Writing tests

The core test functionality is provided by the @specron/spec module which is automatically attached to your project at initialization. Here we explain some of the main framework features but please explore the source code to find out all the possibilities.

Initializing specs

The framework provides a Spec class which holds basically the whole testing power. You start your test by creating an instance of that class.

import { Spec } from '@specron/spec';  const spec = new Spec();

Testing features

The Spec instance provides methods that you can use when writing tests. Most of the time you will use the test method which performs the test you write.

spec.test('is true', async (ctx) => { // promise | function   ctx.true(true); });

There is also the skip method which prevents a test to be performed, and the only method which includes itself into the test process but excludes all other tests.

Nested specs

Tests can be nested using the spec method.

const colors = new Spec(); ... spec.spec('colors', colors);

Using callbacks

The framework provides before and after methods which are execute at the beginning and at the end of the spec case.

spec.before((stage) => {   // execute before all tests }); ... spec.after((stage) => {   // execute after all tests });

These methods have access to the stage of the spec instance. The stage is global to the whole spec stack which means that all settings are always preserved.

There are also the beforeEach and afterEach methods which are triggered before and after each test. These methods have access to the context and stage of the spec. The context represents a copy of a stage and is preserved between beforeEach, test and afterEach methods. This allows for testing atomic tests where a fresh context is always created for each test.

spec.beforeEach((context, stage) => {   // execute before all tests }); ... spec.afterEach((context, stage) => {   // execute after all tests });

Callback functions can be called multiple times and the execution will happen in a defined sequence.

Shared data

The context and the stage both provide a way to set and get values with proper TypeScript types.

interface Data {   id: number;   name: string; }  const spec = new Spec<Data>();  spec.beforeEach((ctx) => {   ctx.set('id', 100);   ctx.set('name', 'John'); })  spec.test('is John with id=100', (ctx) => {   const id = ctx.get('id');   const name = ctx.get('name');   ctx.is(id, 100);   ctx.is(name, 'John'); })

Values set inside the before and after blocks are available to all spec methods. Values set in the beforeEach and afterEach blocks are available only on the context stack of each test.

Contract deployment

Stage and context both provide a series of different helper methods.

A very important method is the deploy() method which deploys a contract to a local blockchain process in the background and returns a contract instance.

const { instance, receipt } = await ctx.deploy({   src: './contracts.json',   contract: 'Main', });

Using CLI

The @specron/cli module is automatically installed when you initialize the project. You can interact with the utility using the npx specron command in your terminal.

To get a list of available features use the --help flag.

$ npx specron --help 

Running tests

Every test file must export the spec instance for the CLI to be able to detect the test.

export default spec;

Run the specron test command to run tests. Customize the files search by using the --match flag.

$ npx specron test --match ./**/*.test.* 

TypeScript support

Install the ts-node NPM package then use the --require flag to enable TypeScript support.

specron --require ts-node/register 

Project configuration

Specron configuration options can be saved inside the package.json file under the the specron key.

{   "specron": {     "compiler": {       "build": "./build",       "match": [         "./src/**/*.sol"       ],       "severities": [         "error",         "warning"       ],       "evmVersion": "byzantium"     },     "flattener": {       "build": "./build",       "match": [         "./src/**/*.sol"       ],       "severities": [         "error",         "warning"       ]     },     "sandbox": {       "port": 8545,       "host": "localhost"     },     "test": {       "server": true,       "port": 8545,       "host": "localhost",       "match": [         "./src/**/*.test.*"       ]     },     "require": [       "ts-node/register"     ]   } }

Note that these options can be overriden by providing CLI arguments.

Using continuous integration

For a full example of a Solidity contract repository including continuous integration using Travis and Specron, see https://github.com/xpepermint/specron-example.

Packages

Package Description Version
@specron/cli Command-line interface. Specron Framework - Specron框架
@specron/compiler Smart contracts compiler. Specron Framework - Specron框架
@specron/flattener Smart contracts flattener. Specron Framework - Specron框架
@specron/init Project structure initializer. Specron Framework - Specron框架
@specron/sandbox Ethereum sandbox server. Specron Framework - Specron框架
@specron/spec Core test suite. Specron Framework - Specron框架

Contributing

See CONTRIBUTING.md for how to help out.

Licence

See LICENSE for details.


Specron框架

<Specron Framework><Specron Framework>Specron Framework - Specron框架

Specron是一个轻量级、开源、无魔法的框架,用于测试Solidity编写的智能合约。测试套件建立在Hayspec框架之上,因此支持使用TypeScript。

Specron为以太坊eth区块链blockchain提供开发环境,并包括一些有用的工具,使开发人员能够轻松编写智能合约测试。

源代码可以在GitHub上找到,您也可以在那里找到我们的问题跟踪程序。

首先安装Specron命令行工具。

Specron依赖于最新的web3和solc软件包,因此请确保在全局范围内安装了它们。Specron还使用promises,因此您需要在不支持Promise时使用Promise polyfill。

Specron自动执行可靠性代码的测试过程。它不需要您安装某些应用程序才能开始。

Specron接口设计为在编写测试时完全支持TypeScript的功能。它是无魔法的,这意味着您可以完全控制和查看代码做什么以及如何执行测试。任何JavaScript或TypeScript开发人员都应该熟悉测试流程。

首先创建一个新的项目文件夹。

初始化项目并安装依赖项。

运行测试,以验证一切正常。

核心测试功能由@specron/spec模块提供,该模块在初始化时自动附加到项目中。这里我们解释了一些主要的框架特性,但是请探索源代码以找出所有的可能性。

框架提供了一个Spec类,它基本上拥有整个测试能力。通过创建该类的实例来启动测试。

规范实例提供了编写测试时可以使用的方法。大多数情况下,您将使用执行您编写的测试的测试方法。

还有一种方法可以阻止执行测试,也是唯一一种将自身包含在测试过程中但排除所有其他测试的方法。

可以使用spec方法嵌套测试。

框架提供了before和after方法,这些方法在spec case的开始和结束时执行。

这些方法可以访问spec实例的阶段。该阶段对整个等级库是全局的,这意味着所有的设置都会被保留。

还有beforeach和afterEach方法,它们在每次测试之前和之后都会触发。这些方法可以访问规范的上下文和阶段。上下文表示阶段的副本,并保存在beforeach、test和afterEach方法之间。这允许测试原子测试,其中总是为每个测试创建一个新的上下文。

回调函数可以多次调用,并且将按照定义的顺序执行。

上下文和阶段都提供了一种使用适当的TypeScript类型设置和获取值的方法。

在before和after块中设置的值可用于所有spec方法。在beforeach和afterEach块中设置的值仅在每个测试的上下文堆栈上可用。

Stage和context都提供了一系列不同的helper方法。

一个非常重要的方法是deploy()方法,它在后台将契约部署到本地区块链blockchain流程并返回一个契约实例。

初始化项目时,@specron/cli模块会自动安装。您可以在终端中使用npx specron命令与该实用程序交互。

要获取可用功能的列表,请使用–help标志。

每个测试文件都必须导出规范实例,以便CLI能够检测到测试。

运行specron test命令来运行测试。使用–match标志自定义文件搜索。

安装ts node NPM包,然后使用–require标志启用TypeScript支持。

Specron配置选项可以保存在包.json在specron密钥下归档。

请注意,可以通过提供CLI参数覆盖这些选项。

有关Solidity合同存储库(包括使用Travis和Specron进行持续集成)的完整示例,请参见https://github.com/xpepermint/specron-example。

参见贡献.md如何帮助你。

有关详细信息,请参阅许可证。

Specron框架

安装

入门

项目初始化

编写测试

初始化规范

使用回调

共享数据

合同部署

使用CLI

运行测试

类型脚本支持

项目配置

使用连续集成

贡献

许可证

@specron/cli 命令行界面。 Specron Framework - Specron框架

@specron/compiler 智能合约编译器。 Specron Framework - Specron框架

@specron/flanner 智能合约扁平化器。 Specron Framework - Specron框架 @specron/init 项目结构初始值设定项。 Specron Framework - Specron框架

@specron/sandbox 以太坊eth沙盒服务器。 Specron Framework - Specron框架

@specron/spec 核心测试套件。 Specron Framework - Specron框架

Specron是一个轻量级、开源、无魔法的框架,用于测试Solidity编写的智能合约。测试套件建立在Hayspec框架之上,因此支持使用TypeScript。

Specron为以太坊eth区块链blockchain提供开发环境,并包括一些有用的工具,使开发人员能够轻松编写智能合约测试。

源代码可以在GitHub上找到,您也可以在那里找到我们的问题跟踪程序。

安装

首先安装Specron命令行工具。

$ npm install -g @specron/cli web3 solc

Specron依赖于最新的web3和solc软件包,因此请确保在全局范围内安装了它们。Specron还使用promises,因此您需要在不支持Promise时使用Promise polyfill。

入门

Specron自动执行可靠性代码的测试过程。它不需要您安装某些应用程序才能开始。

Specron接口设计为在编写测试时完全支持TypeScript的功能。它是无魔法的,这意味着您可以完全控制和查看代码做什么以及如何执行测试。任何JavaScript或TypeScript开发人员都应该熟悉测试流程。

项目初始化

首先创建一个新的项目文件夹。

$ mkdir myproject $ cd myproject

初始化项目并安装依赖项。

$ specron init $ npm install

运行测试,以验证一切正常。

$ npm test

编写测试

核心测试功能由@specron/spec模块提供,该模块在初始化时自动附加到项目中。这里我们解释了一些主要的框架特性,但是请探索源代码以找出所有的可能性。

初始化规范

框架提供了一个Spec类,它基本上拥有整个测试能力。通过创建该类的实例来启动测试。

import { Spec } from '@specron/spec';  const spec = new Spec();

使用回调

规范实例提供了编写测试时可以使用的方法。大多数情况下,您将使用执行您编写的测试的测试方法。

spec.test('is true', async (ctx) => { // promise | function   ctx.true(true); });

还有一种方法可以阻止执行测试,也是唯一一种将自身包含在测试过程中但排除所有其他测试的方法。

共享数据

可以使用spec方法嵌套测试。

const colors = new Spec(); ... spec.spec('colors', colors);

合同部署

框架提供了before和after方法,这些方法在spec case的开始和结束时执行。

spec.before((stage) => {   // execute before all tests }); ... spec.after((stage) => {   // execute after all tests });

这些方法可以访问spec实例的阶段。该阶段对整个等级库是全局的,这意味着所有的设置都会被保留。

还有beforeach和afterEach方法,它们在每次测试之前和之后都会触发。这些方法可以访问规范的上下文和阶段。上下文表示阶段的副本,并保存在beforeach、test和afterEach方法之间。这允许测试原子测试,其中总是为每个测试创建一个新的上下文。

spec.beforeEach((context, stage) => {   // execute before all tests }); ... spec.afterEach((context, stage) => {   // execute after all tests });

回调函数可以多次调用,并且将按照定义的顺序执行。

使用CLI

上下文和阶段都提供了一种使用适当的TypeScript类型设置和获取值的方法。

interface Data {   id: number;   name: string; }  const spec = new Spec<Data>();  spec.beforeEach((ctx) => {   ctx.set('id', 100);   ctx.set('name', 'John'); })  spec.test('is John with id=100', (ctx) => {   const id = ctx.get('id');   const name = ctx.get('name');   ctx.is(id, 100);   ctx.is(name, 'John'); })

在before和after块中设置的值可用于所有spec方法。在beforeach和afterEach块中设置的值仅在每个测试的上下文堆栈上可用。

运行测试

Stage和context都提供了一系列不同的helper方法。

一个非常重要的方法是deploy()方法,它在后台将契约部署到本地区块链blockchain流程并返回一个契约实例。

const { instance, receipt } = await ctx.deploy({   src: './contracts.json',   contract: 'Main', });

类型脚本支持

初始化项目时,@specron/cli模块会自动安装。您可以在终端中使用npx specron命令与该实用程序交互。

要获取可用功能的列表,请使用–help标志。

$ npx specron --help 

项目配置

每个测试文件都必须导出规范实例,以便CLI能够检测到测试。

export default spec;

运行specron test命令来运行测试。使用–match标志自定义文件搜索。

$ npx specron test --match ./**/*.test.* 

使用连续集成

安装ts node NPM包,然后使用–require标志启用TypeScript支持。

specron --require ts-node/register 

Specron配置选项可以保存在包.json在specron密钥下归档。

{   "specron": {     "compiler": {       "build": "./build",       "match": [         "./src/**/*.sol"       ],       "severities": [         "error",         "warning"       ],       "evmVersion": "byzantium"     },     "flattener": {       "build": "./build",       "match": [         "./src/**/*.sol"       ],       "severities": [         "error",         "warning"       ]     },     "sandbox": {       "port": 8545,       "host": "localhost"     },     "test": {       "server": true,       "port": 8545,       "host": "localhost",       "match": [         "./src/**/*.test.*"       ]     },     "require": [       "ts-node/register"     ]   } }

请注意,可以通过提供CLI参数覆盖这些选项。

贡献

有关Solidity合同存储库(包括使用Travis和Specron进行持续集成)的完整示例,请参见https://github.com/xpepermint/specron-example。

许可证

Package Description Version
@specron/cli 命令行界面。 Specron Framework - Specron框架
@specron/compiler 智能合约编译器。 Specron Framework - Specron框架
@specron/flanner 智能合约扁平化器。 Specron Framework - Specron框架
@specron/init 项目结构初始值设定项。 Specron Framework - Specron框架
@specron/sandbox 以太坊eth沙盒服务器。 Specron Framework - Specron框架
核心测试套件。 Specron Framework - Specron框架 Specron Framework - Specron框架

Contributing

参见贡献.md如何帮助你。

Licence

有关详细信息,请参阅许可证。

部分转自网络,侵权联系删除区块链源码网

www.interchains.cc

https://www.interchains.cc/16963.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 !
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » Specron Framework – Specron框架区块链毕设代写

提供最优质的资源集合

立即查看 了解详情