Я пытаюсь протестировать чейн-код nodejs, не развертывая его в сети Hyperledger fabic. Существует популярная библиотека nodejs под названием @theledger/fabric-mock-stub. Ниже мой модульный тест
const Chaincode = require('./index.js');
// import { ChaincodeMockStub, Transform } from "@theledger/fabric-mock-stub";
const ChaincodeMockStub = require("@theledger/fabric-mock-stub")
// You always need your chaincode so it knows which chaincode to invoke on
const chaincode = new Chaincode();
describe('Test MyChaincode', () => {
it("Should init without issues", async () => {
const mockStub = new ChaincodeMockStub("MyMockStub", chaincode);
const response = await mockStub.mockInit("tx1", []);
expect(response.status).to.eql(200)
});
});
При запуске этого теста выдается следующая ошибка2019-04-08T18:34:55.530Z ERROR [lib/chaincode.js] uncaughtException: Missing required argument peer.address
Кто-нибудь знает, как использовать эту тестовую библиотеку? https://github.com/wearetheledger/fabric-mock-stub
Любая помощь будет принята с благодарностью.
У меня была такая же проблема, и я заметил, что внизу моего js-файла chaincode у меня было
shim.start(new Chaincode())
Если вы переместите эту строку в другой файл или закомментируете ее перед выполнением тестов, тесты должны работать нормально.