nebtest
v1.0.2
Published
NebTest will let you to test your nebulas smart contracts just like you write unit test for any javascript applications.
Downloads
9
Readme
Nebtest
NebTest will let you to test your nebulas smart contracts just like you write unit test for any javascript applications.
Features
- You can configure for testing in your testnet / mainnet.
- Run test case with multiple test data at a time using json.
- Will deploy a smart contract before each test case to run your test case in clean state.
Pre-requisites
- node >= 8.10.3 (Download the latest node version here)
Methods
| Name | Parameters | Return | Description | |--- |:----:|:----:|--- | | createNewAccount | - | Account | Creates a new account from wallet | | transferToken | to, token | - | Send token to the given address from wallet | | deployContract | fileName | - | Deploy the contract file | | callContract | value, call | transaction | Call the specified methods with arguments | | transact | value, call | receipt | Returns the transaction receipt |
Getting Started
Install
npm install --save nebtest
npm install --save mocha chaiInclude nebtest to your test case
const Nebtest = require('nebtest');Export variables
Download and follow the instructions to create a web-wallet https://github.com/nebulasio/web-wallet
Create a wallet
From the wallet info, you will get the wallet details
export ENVIRONMENT='testnet'
export SOURCEACCOUNT='wallet private key'
export COINBASE='wallet address'Mock Contract
Place your contract files in test directorytest/contracts/contractFile.js
Test data
Place your test data in test directorytest/testCases.json
Test data - sample format
const testData = [ { name: 'Test Case Description', data: [ { name: 'Test data name', testInput: { ...test inputs }, testExpect: { ...test result expect } } ] }
Test Cases
Write your test cases intest/test.js
Run test
Add following command to scripts. The timeout is based on the mining time of the contract you are running. Increase the timeout if you are getting the timeout error.
"scripts": { ... "test": "mocha --timeout 600000" }
Run the test as,
npm run test
Example
Check here for a complete example