* 본 포스팅은 하이퍼레저 패브릭 docs를 번역한 내용으로, 번역 과정에서 잘못된 부분이 있을 수 있습니다.
상세 내용은 하단 링크를 참조 부탁드리며, 잘못된 내용에 대한 피드백은 언제든 환영합니다 : ) 
https://hyperledger.github.io/composer/latest/business-network/testing

 

Testing Business Networks | Hyperledger Composer

Testing Business Networks Hyperledger Composer supports three types of testing: interactive testing, automated unit testing and automated system testing. All three serve different purposes and are vital to ensuring the success of your blockchain projects.

hyperledger.github.io

하이퍼레저 컴포저는 세가지 유형의 테스팅을 지원한다. 반응형테스트, 자동화된 단위 테스트, 자동화된 시스템 테스트이다. 이 세가지는 모두 다른 목적을 가지고 있으며 블록체인 프로젝트의 성공을 보증하기 위한 필수요소이다.

비즈니스 네트워크 정의를 배포하고 나면 종종 배포가 올바르게 되었는지 확인하기 위해 반응형 "smoke test"를 하는 것이 유용하다. composer CLI는 이런 smoke test를 하는 몇몇 커맨드를 갖고 있다.

또 Docker Compose와 Mocha/Chai를 사용해 full-blown 시스템 테스트를 할 수도 있다. 이는 런타임을 시작하며 비즈니스 네트워크 정의를 배포하고 프로그래밍적으로 asset을 생성하고 transaction을 제출해 asset registry들의 상태를 조사한다.

단위테스트는 트랜잭션이 처리될 때 world-state에 대한 변화가 올바르게 이뤄지는지에 초점을 두고 있다.

단위테스트와 시스템테스트 모두 Jenkins, TravisCI, Circle CI 등과 같은 CI/CD build pipeline을 통해 자동화되어있다.

Interactive Testing

플레이그라운드를 사용해 참가자, 자산 생성 및 트랜잭션 제출을 반응형으로 테스트할 수 있다.

 

Testing from the Command Line

커맨드라인은 런타임 상태를 확인하고 트랜잭션을 제출하는데 사용할 수 있다. composer network list 커맨드를 사용해 asset과 participant registries의 상태를 볼 수 있고, composer transaction submit 커맨드를 통해 트랜잭션을 제출할 수 있다.

 

Creating Unit Tests

트랜잭션 처리 함수에 있는 비즈니스 로직은 100% 코드 커버리지에 속하기 때문에 단위 테스트를 해야만 한다. 이를 통해 비즈니스 로직 내 오타나 로직 오류가 없는지를 확인할 수 있다.

트랜잭션 처리 함수 내 비즈니스 로직에 대한 단위 테스트를 수행하기 위해 Mocha, Chai, Sinon, Istanbul 같은 JavaScript 테스팅 라이브러리를 사용할 수도 있다.

embedded 런타임은 단위 테스트에 매우 유용하다. 이는 하이퍼레저 패브릭을 켜지 않고 시뮬레이팅한 Node.js 블록체인 환경에서 비즈니스 로직을 빠르게 테스트할 수 있다.

단위 테스트용 샘플 네트워크는 아래를 참조

https://github.com/hyperledger/composer-sample-networks/blob/master/packages/bond-network/test/Bond.js

 

hyperledger/composer-sample-networks

Sample business network definitions for Composer. Contribute to hyperledger/composer-sample-networks development by creating an account on GitHub.

github.com

 

+ Recent posts