1 Installing Modules
- 가나슈 라이브러리 설치 npm install mocha ganache-cli web3
- test 디렉토리 생성하고 index.test.js 파일 생성
- 각각의 라이브러리를 불러옴
- Web3는 현재 v1.x.x(비동기 가능)와 v0.x.x 버전이 나와있으므로 version1을 사용하기 위해 Web3를 명시해야 함
2 Web3 Providers
- 생성자를 사용하여 Web3 인스턴스를 생성함
- 인스턴스 생성 이후 즉시 새로운 구성을 Ganache에서 실행하기 위해 공급자(Provider) 필요
- 웹서비스를 사용하는 방법으로 브라우저가 네트워크에 요청 보냄
- 공급자를 의사소통의 수단으로 사용하기 위해 코드 추가
3 Mocha
(1) Testing with Mocha
- 모카는 일반적인 용도의 프레임워크
- 모카를 사용해 모든 유형의 js 코드를 테스트할 수 있음
- assert.equal(car.park(), 'stopped'); 로 park와 내가 생각하는 가치가 동일하다고 주장
- assert 라이브러리는 Node 표준 라이브러리로 다양한 함수를 제공 ex.equal
- test를 실행해보면 가치가 동일하여 Car가 park된 것을 볼 수 있음
- stopped를 stoooooooped 등으로 변경하면 일치하지 않으므로 실패함
- drive에 대한 내용을 vroom으로 일치하다고 주장한 뒤 실행하면 일치하므로 정상적으로 작동함
- 아무것도 할당되지 않은 let car; 코드 추가
- describe에서 새로운 car를 생성하지 않고 먼저 생성한 car를 재사용하도록 함
- beforeEach()로 아무것도 할당되지 않았을 때 car의 대안값을 설정하면 정상적으로 작동함
(2) Mocha Structure
- 모카 파일을 가나슈는 계속해서 기억하고 있음
- 내부의 저장된 메세지를 업데이트할 경우 Deploy로 이동하는 과정을 계속해서 반복
- 가나슈를 통해 다른 네트워크가 아닌 내 네트워크를 사용하는 과정
- 잠금 해제 상태로 생성되므로 액세스 하거나 키를 관리하는 과정이 필요하지 않음
(3) Fetching Accounts from Ganache
- Web3 라이브러리를 통해 가나슈 네트워크에서 계정에 접근하는 방법
- 계정리스트 받아오는 작업 후 코드 실행하면 가나슈가 네트워크에서 자동으로 인증된 계정 10개 받아옴
(3) Refactor to Async/Await