Overview
テストケースで使えそうな strings の機能を教えてもらったので書いておきます。
テストケース書くときに使えることを教えてもらったhttps://t.co/tvtsGQjufL
— ema (@ema_hiro) 2021年1月19日
Strings.Repeat
https://golang.org/pkg/strings/#Repeat はある文字列を指定した回数分繰り返して文字列を生成するメソッドです。
こんな感じで繰り返し出力してくれます。
package main import ( "fmt" "strings" ) func main() { s := strings.Repeat("s", 10) fmt.Println(s) } // Output: ssssssssss
ref: https://play.golang.org/p/Dgsy3YjHRUi
テスト書くのに使えそう?
テストケースで文字数の境界値のテストをしたいケースってあると思いますよね。ある関数、メソッドのテストをしたいケースにおいて以下のように使うことができます。
func TestMethodA() (t *testing.T) { tests := []struct{}{ name string input string want bool }{ {name: "case_a", input: strings.Repeat("s", 10), true}, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T){ // MethodA のテスト }) } }
別に境界値分のStringを用意してもいいですが、意味のある文字列(JSONとかHTMLとかね)以外の単純な文字列であれば strings.Repeat
を使って長い文字列を生成するといいのではないかなと思いました。