snapshot testingのライブラリを書いた #go
書いた。
なぜ書いたか
snapshot testingのライブラリを使ってライブラリを作ろうとしていたが
いまいち使い勝手が合わなかったので、機能を落としたものを作った。
試したのは以下の2つだが、goldieのほうが挙動としては近かったが
使い方には合わないかなと思って小さいライブラリを書いてみた。
使い方
以下のような形で、snapshotに追記できるようになっている。
これは、順序のあるデータを記録できるようにこうしている。
(が、Snapshotという関数は変な気もしてきたが気にしないことにする)
func TestSnapshot(t *testing.T) { s := New() _ = s.Snapshot("xxx") _ = s.Snapshot("xxx") _ = s.Snapshot("xxxy") s.Assert(t) }
snapshotとしては以下のようなファイルが生成される。
xxx xxx xxxy
io.Writerのインターフェースも実装しておいた。
func TestCanUseAsIoWriter(t *testing.T) { s := New() b := bytes.NewBufferString("test") _, _ = io.Copy(s, b) s.Assert(t) }