package mymath
func Sum(nums ...int) int {
total := 0
for _, num := range nums {
total += num
}
return total
}
func Div(a, b float64) (float64, error) {
return a / b, nil
}
func StrRept(s string, count int) string {
b := make([]byte, len(s)*count)
bp := copy(b, s)
for bp < len(b) {
copy(b[bp:], b[bp:])
bp *= 2
}
return string(b)
}
✘ ⚙ yundream@yundream ~/workstation/tdd/function/mymath go test -v
=== RUN Test_Sum
--- FAIL: Test_Sum (0.00s)
math_test.go:16:
Error Trace: math_test.go:16
Error: Not equal:
expected: 6
actual : 11
Test: Test_Sum
Messages: They shuould be equal
=== RUN Test_Div
--- FAIL: Test_Div (0.00s)
math_test.go:24:
Error Trace: math_test.go:24
Error: Expected value not to be nil.
Test: Test_Div
Messages: Devided zero
math_test.go:26: Divide Zero
FAIL
exit status 1
FAIL github.com/yundream/tddtest/mymath 0.003s
Assert 패키지
테스트를 체계적으로 하기 위해서 asserting 툴들을 사용한다. 위 코드는 아래와 같이 수정 할 수 있다.
TDD를 하는 이유
품질의 일관성
테스트를 하지 않으면
테스트는 자주 해야 한다.
개발에 집중
테스트할 수 있는 코드는 좋은 코드다.
단위 별 테스트 & 통합
Go 언어와 TDD
C++과 Go 언어의 차이
Simple example
Assert 패키지
HTTP API 테스트
CICD
CICD와 TDD의 통합
Recent Posts
Archive Posts
Tags