NebTest will automate unit testing of nebulas smart contracts.
- With NebTest, we can automate smart contract testing on both testnet and mainnet.
- Run test case with multiple test data sets at a time.
- Run test cases in clean state, by deploying a smart contract before each test case.
- node >= 8.10.3 (Download the latest node version here)
| 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 |
-
Install
npm install --save nebtest
npm install --save mocha chai -
Include 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
Check here for a complete example
Test Result
