test

자동 테스트 용례를 편집하지 않는 프로그래머는 좋은 테스트 엔지니어가 아닙니다. 우리는 모든 항목 시동 최초에 완전한 자동 테스트 용례를 건립하는 것 격려합니다. 항목의 발전에 따라 전기의 투입은 수백 배의 보답을 얻을 수 있습니다. 본장을 읽은 후 FIBOS 테스트 용례의 편집을 습득할 수 있습니다.

  • 본문 운행 환경:

오퍼레이팅 시스템:macOS

  • 본장 관련되는 문장 목록:

    fibos_client/
    ├── call.js
    ├── deploy.js
    ├── hello
    │   ├── hello.abi
    │   └── hello.js
    ├── initClient.js
    └── test
      ├── case.js
      ├── sample_test.js
      └── test_contract.js

본장 범례 코드 주소:https://github.com/FIBOSIO/samples

간단한 테스트 법례

테스트용 폴더 창건:

mkdir test
cd test

이하 코드는 작업 디렉토리sample_test.js:에 보존

var test = require('test');
test.setup();

describe('a sample case', () => {
    var name;

    before(() => {
        name = "FIBOS";
    });

    it('check name', () => {
        assert.equal(name, "FIBOS");
    });
});

test.run();

집행:

fibos sample_test.js

결과 수출:

    a sample case
    √ check name

  √ 1 tests completed (0ms)

FIBOS 업무 장면 테스트 용례 편집 시작

아하 코드는 본지 FIBOS 노드 서비스 운행하고 있는 것 확보합니다.

새로운FIBOS계정 창건하는 테스트 용례

이하 코드는 작업 디렉토리 case.js: 에 보존

var test = require('test');
test.setup();

var FIBOS = require('fibos.js')
var config = {
    "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",
    "producer-name": "eosio",
    "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
    "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3",
    "httpEndpoint": "http://127.0.0.1:8888",
};


describe('new account FIBOS', () => {
    var fibos;

    before(() => {
        fibos = FIBOS({
            chainId: config["chainId"],
            keyProvider: config["private-key"],
            httpEndpoint: config["httpEndpoint"],
            logger: {
                log: null,
                error: null
            }
        });
    });

    it('new account', () => {
        fibos.newaccountSync({
            creator: 'eosio',
            name: "hellofibos",
            owner: config["public-key"],
            active: config["public-key"]
        })
    });

    it("get account", () => {
        var c = fibos.getAccountSync('hellofibos');
        assert.equal(c.account_name, "hellofibos");
    });
});

require.main === module && test.run(console.DEBUG);

결과 수출:

 new account FIBOS
    √ new account
    √ get account

  √ 2 tests completed (13ms)

계약 테스트 용례:

JavaScript 계약 기억하세요? 다음에 hello 계약에 관하여 테스트 용례 편집합니다. 이하 코드는 작업 디렉토리 test_contract.js: 에 보존

var test = require('test');
test.setup();

var FIBOS = require('fibos.js')
var contractName = "hello";
var fs = require("fs");
var config = {
    "chainId": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",
    "producer-name": "eosio",
    "public-key": "FO6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
    "private-key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3",
    "httpEndpoint": "http://127.0.0.1:8888",
};


describe('contract test', () => {
    var fibos;

    before(() => {
        fibos = FIBOS({
            chainId: config["chainId"],
            keyProvider: config["private-key"],
            httpEndpoint: config["httpEndpoint"],
            logger: {
                log: null,
                error: null
            }
        });
    });

    it('get code', () => {
        var code = fibos.getCodeSync(contractName, true);
        assert.notEqual(code.code_hash, "0000000000000000000000000000000000000000000000000000000000000000");
    });

    it('setabi', () => {
        var abi = JSON.parse(fs.readTextFile("../hello/hello.abi"));
        fibos.setabiSync(contractName, abi);
    });
});

require.main === module && test.run(console.DEBUG);

결과 수출:

  contract test
    √ get code
    √ setabi (405ms)

  √ 2 tests completed (420ms)

Last updated