[Go] Testing

Go는 기본적으로 Testing 패키지를 가지고 있습니다. Go로 테스트 코드를 짜는 방법을 한번 확인해 보겠습니다.

testing - The Go Programming Language
_Package testing provides support for automated testing of Go packages. It is intended to be used in concert with the…_golang.org

기본적으로 세가지의 테스트 방법을 지원합니다.

  1. testing
  2. benchmark
  3. example

이렇게 세가지 입니다.

파일은 반드시 _test.go 형식으로 끝나는 파일만

go test -v [파일명]

명령어를 통해 실행되어집니다.

testing

func TestXxx(\*testing.T)

의 함수 모양을 가져야 합니다. 실행을 할 때는 스크립트 처럼 순차적으로 진행됩니다.

assertion 계열의 문법은 사용하지 않으면 testing 파일 안에서 자유롭게 문법을 사용하다가 에러가 날 조건들이 생길 경우는

t.Error("여기서 에러 발생")

과 같은 형식으로 에러를 발생시킬 수 있습니다.

benchmark

benchmark 옵션은 실행속도를 확인할 수 있습니다.

func BenchmarkXxx(\*testing.B)

형태로 함수가 정의되어 있습니다.

go test -v [파일명] -bench [regexp]

같은 형태로 뒤에 bench option 을 주는게 중요합니다.

BenchmarkZ-4 10000000 138 ns/op  
BenchmarkA-4 10000000 143 ns/op

와 같이 output 이 나옵니다.

example

example 은 예제를 만들어 테스트 처럼 사용할 수 있습니다.

func Example\_suffix() { ... }  
func ExampleF\_suffix() { ... }  
func ExampleT\_suffix() { ... }  
func ExampleT\_M\_suffix() { ... }

Example 접두어만 주면 실행이 됩니다.

중요!

함수 내에 아래와 같은 형식이 없으면 실행되지 않습니다.

func ExampleSalutations() {  
fmt.Println("hello, and")  
fmt.Println("goodbye")  
// Output:  
// hello, and  
// goodbye  
}

Output:

이부분이 중요합니다.

실행순서

test->example->benchmark 순으로 실행됩니다.

By Keen Dev on February 27, 2016.

Exported from Medium on May 31, 2017.

AMP — Accelerated Mobile Pages Project

모바일 페이지를 빠르게 하는 프로젝트는 크게 지금 두가지로 진행이 된다고 보여지는데 하나는 AMP이고 하나는 Instant Articles 입니다.

오늘은 AMP에 대해서 알아보죠. 드디어 github 랭킹에 올라왔네요.

2016/02/26 Editor’s choice ( 211★)

링크 : https://github.com/ampproject/amphtml

일단 AMP 에 대한 기사를 공유합니다.

링크 : http://www.bloter.net/archives/250056

기사를 찬찬히 읽다 보면 크게 두가지를 알 수 있습니다.

  1. 모바일 웹을 빠르게 하는 어떤 방법을 제공한다. 오픈 소스로 공개했다. 시작은 구글이 했는데, ORG를 만들었다
  2. 페이스북의 Instant Article 때문에 나왔다.

네, 그렇습니다. 이게 결국은 Publisher 가 되는 기사를 작성하는 업체들에게는 민감하게 작용하는데 그 이유는 이제 기사가 소비가 되는 혹은 유통이 되는 채널이 모바일로 이동을 했고, 그 중에서도 SNS 가 엄청나게 큰 비중을 차지하게 되었습니다. 여기까진 현실.

이러다 보니, 구글에서는 SNS에 들어가기 시작한 뉴스나 페이지들은 검색을 할 수가 없게 된것입니다.

구글이 오픈 웹을 지향하는 데에는 여러가지가 있겠지만, 검색이 되지 않으면 곤란해 지는 부분들은 매우 큰 부분이고 그 중심에는 Facebook이 있게 된 것이죠.

Instant Articlel 무엇인지 살펴봐야겠죠?

Facebook의 Instant Article 에 관한 영상입니다.

어떻습니까?

굉장히 잘 만들어져 있다는 생각이 듭니다.

게다가 조만간 오픈소스로 풀린다는 더 좋은 뉴스도 있네요.

인사이트

블로깅을 하는 입장에서는 아마도 AMP가 더 반겨질 거 같습니다. 웹 기반에 오픈 웹이라고 하는 구글의 모토도 잘 맞기 때문이죠.이미 워드 프레스는 AMP 프로젝트에 들어와 있습니다.

하지만 기사를 발행하는 앱을 만드는 입장에서 Instant Article은 굉장히 좋은 선택지가 될 것도 같습니다.

모두다 쓰여질 확률은 높을 것 같고, 그에 대한 방법(함께 쓰는) 들이 여기 저기서 나올 거 같습니다. Facebook 의 그간 행보를 보면 자신들이 낼 지도 모르겠군요.

어쨌든 환영입니다!

마지막으로 Fortune의 기사를 공유합니다.

http://fortune.com/2015/10/08/googles-amp-project/

By Keen Dev on February 25, 2016.

Exported from Medium on May 31, 2017.