이번강의는 fake interfaces 를 만들어서 함수 테스트에 side effect 없이 테스트를 통과시키는 법을 배워봅니다
저번 HandleErr가 이름만 바꿔주고 인터페이스로 한 함수만 바꿔줬다면
이번에는 interface안에 여러 메소드 함수를 놓고 여러개를 바꿉니다?
어쨋거나 저쨋거나 로직은 os.ReadFile() 같이 test할 수 없는 함수는 바꿔치기해서 리턴값만 같도록 조작하는 것이 이 fake interface의 핵심입니다
fake interface를 만들어 테스트를 하다가 계속 테스트 통과는 되는데 coverage 퍼센트는 안나와서 왜 그런가 하고 봤더니 wallet_test.go 함수라도 wallet.go 를 기반으로 돌아간다
그렇기 때문에 w := Wallet() 함수를 사용할 때면
wallet.go의 이 함수를 사용하게 되는데 이때 w == nil이 맨 처음에 나온다
이 w는 package wallet 에서의 전역변수이고 그로 인해서 wallet_test.go에서도 같은 w가 사용된다
근데 나는 이미 wallet을 가지고 있기 때문에 w != nil이게 되고 단지 return w만 주구장창했던 것이다
한 한시간 반만에 찾고나서 허탈감이 있었지만
해결했다는 것에 의의를 두고 다음 강의로 넘어간다...
'go언어 블록체인' 카테고리의 다른 글
노마드코인 13-11 리뷰 (0) | 2021.08.25 |
---|---|
노마드코인 13-10 리뷰 (0) | 2021.08.24 |
노마드코인 13-8 리뷰 (0) | 2021.08.24 |
노마드코인 13-7 리뷰 (0) | 2021.08.24 |
노마드코인 13-6 리뷰 (0) | 2021.08.24 |