mirror of
https://github.com/jimeh/go-mocktesting.git
synced 2026-02-19 03:46:40 +00:00
190 lines
5.1 KiB
Go
190 lines
5.1 KiB
Go
package mocktesting_test
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/jimeh/go-mocktesting"
|
|
)
|
|
|
|
func Example_basic() {
|
|
assertTrue := func(t testing.TB, v bool) {
|
|
if v != true {
|
|
t.Error("expected false to be true")
|
|
}
|
|
}
|
|
|
|
mt := mocktesting.NewT("TestMyBoolean1")
|
|
assertTrue(mt, true)
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Aborted: %+v\n", mt.Aborted())
|
|
|
|
mt = mocktesting.NewT("TestMyBoolean2")
|
|
assertTrue(mt, false)
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Aborted: %+v\n", mt.Aborted())
|
|
fmt.Printf("Output: %s\n", strings.Join(mt.Output(), ""))
|
|
|
|
// Output:
|
|
// Name: TestMyBoolean1
|
|
// Failed: false
|
|
// Aborted: false
|
|
// Name: TestMyBoolean2
|
|
// Failed: true
|
|
// Aborted: false
|
|
// Output: expected false to be true
|
|
}
|
|
|
|
func Example_fatal() {
|
|
requireTrue := func(t testing.TB, v bool) {
|
|
if v != true {
|
|
t.Fatal("expected false to be true")
|
|
}
|
|
}
|
|
|
|
mt := mocktesting.NewT("TestMyBoolean1")
|
|
requireTrue(mt, true)
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Aborted: %+v\n", mt.Aborted())
|
|
|
|
mt = mocktesting.NewT("TestMyBoolean2")
|
|
mocktesting.Go(func() {
|
|
requireTrue(mt, false)
|
|
fmt.Println("This is never executed.")
|
|
})
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Aborted: %+v\n", mt.Aborted())
|
|
fmt.Printf("Output: %s\n", strings.Join(mt.Output(), ""))
|
|
|
|
// Output:
|
|
// Name: TestMyBoolean1
|
|
// Failed: false
|
|
// Aborted: false
|
|
// Name: TestMyBoolean2
|
|
// Failed: true
|
|
// Aborted: true
|
|
// Output: expected false to be true
|
|
}
|
|
|
|
func Example_subtests() {
|
|
requireTrue := func(t testing.TB, v bool) {
|
|
if v != true {
|
|
t.Fatal("expected false to be true")
|
|
}
|
|
}
|
|
|
|
mt := mocktesting.NewT("TestMyBoolean")
|
|
mt.Run("true", func(t testing.TB) {
|
|
requireTrue(t, true)
|
|
})
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Sub1-Name: %s\n", mt.Subtests()[0].Name())
|
|
fmt.Printf("Sub1-Failed: %+v\n", mt.Subtests()[0].Failed())
|
|
fmt.Printf("Sub1-Aborted: %+v\n", mt.Subtests()[0].Aborted())
|
|
|
|
mt.Run("false", func(t testing.TB) {
|
|
requireTrue(t, false)
|
|
fmt.Println("This is never executed.")
|
|
})
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Sub2-Name: %s\n", mt.Subtests()[1].Name())
|
|
fmt.Printf("Sub2-Failed: %+v\n", mt.Subtests()[1].Failed())
|
|
fmt.Printf("Sub2-Aborted: %+v\n", mt.Subtests()[1].Aborted())
|
|
fmt.Printf("Sub2-Output: %s\n", strings.Join(mt.Subtests()[1].Output(), ""))
|
|
|
|
// Output:
|
|
// Name: TestMyBoolean
|
|
// Failed: false
|
|
// Sub1-Name: TestMyBoolean/true
|
|
// Sub1-Failed: false
|
|
// Sub1-Aborted: false
|
|
// Failed: true
|
|
// Sub2-Name: TestMyBoolean/false
|
|
// Sub2-Failed: true
|
|
// Sub2-Aborted: true
|
|
// Sub2-Output: expected false to be true
|
|
}
|
|
|
|
func Example_subtests_in_subtests() {
|
|
assertGreaterThan := func(t testing.TB, got int, min int) {
|
|
if got <= min {
|
|
t.Errorf("expected %d to be greater than %d", got, min)
|
|
}
|
|
}
|
|
|
|
mt := mocktesting.NewT("TestMyBoolean")
|
|
mt.Run("positive", func(t testing.TB) {
|
|
subMT, _ := t.(*mocktesting.T)
|
|
|
|
subMT.Run("greater than", func(t testing.TB) {
|
|
assertGreaterThan(t, 5, 4)
|
|
})
|
|
subMT.Run("equal", func(t testing.TB) {
|
|
assertGreaterThan(t, 5, 5)
|
|
})
|
|
subMT.Run("less than", func(t testing.TB) {
|
|
assertGreaterThan(t, 4, 5)
|
|
})
|
|
})
|
|
fmt.Printf("Name: %s\n", mt.Name())
|
|
fmt.Printf("Failed: %+v\n", mt.Failed())
|
|
fmt.Printf("Sub1-Name: %s\n", mt.Subtests()[0].Name())
|
|
fmt.Printf("Sub1-Failed: %+v\n", mt.Subtests()[0].Failed())
|
|
fmt.Printf("Sub1-Aborted: %+v\n", mt.Subtests()[0].Aborted())
|
|
fmt.Printf("Sub1-Sub1-Name: %s\n", mt.Subtests()[0].Subtests()[0].Name())
|
|
fmt.Printf(
|
|
"Sub1-Sub1-Failed: %+v\n", mt.Subtests()[0].Subtests()[0].Failed(),
|
|
)
|
|
fmt.Printf(
|
|
"Sub1-Sub1-Aborted: %+v\n", mt.Subtests()[0].Subtests()[0].Aborted(),
|
|
)
|
|
fmt.Printf("Sub1-Sub1-Name: %s\n", mt.Subtests()[0].Subtests()[1].Name())
|
|
fmt.Printf(
|
|
"Sub1-Sub2-Failed: %+v\n", mt.Subtests()[0].Subtests()[1].Failed(),
|
|
)
|
|
fmt.Printf(
|
|
"Sub1-Sub2-Aborted: %+v\n", mt.Subtests()[0].Subtests()[1].Aborted(),
|
|
)
|
|
fmt.Printf(
|
|
"Sub1-Sub3-Output: %s\n", strings.TrimSpace(
|
|
strings.Join(mt.Subtests()[0].Subtests()[1].Output(), ""),
|
|
),
|
|
)
|
|
fmt.Printf("Sub1-Sub1-Name: %s\n", mt.Subtests()[0].Subtests()[2].Name())
|
|
fmt.Printf(
|
|
"Sub1-Sub3-Failed: %+v\n", mt.Subtests()[0].Subtests()[2].Failed(),
|
|
)
|
|
fmt.Printf(
|
|
"Sub1-Sub3-Aborted: %+v\n", mt.Subtests()[0].Subtests()[2].Aborted(),
|
|
)
|
|
fmt.Printf(
|
|
"Sub1-Sub3-Output: %s\n", strings.TrimSpace(
|
|
strings.Join(mt.Subtests()[0].Subtests()[2].Output(), ""),
|
|
),
|
|
)
|
|
|
|
// Output:
|
|
// Name: TestMyBoolean
|
|
// Failed: true
|
|
// Sub1-Name: TestMyBoolean/positive
|
|
// Sub1-Failed: true
|
|
// Sub1-Aborted: false
|
|
// Sub1-Sub1-Name: TestMyBoolean/positive/greater_than
|
|
// Sub1-Sub1-Failed: false
|
|
// Sub1-Sub1-Aborted: false
|
|
// Sub1-Sub1-Name: TestMyBoolean/positive/equal
|
|
// Sub1-Sub2-Failed: true
|
|
// Sub1-Sub2-Aborted: false
|
|
// Sub1-Sub3-Output: expected 5 to be greater than 5
|
|
// Sub1-Sub1-Name: TestMyBoolean/positive/less_than
|
|
// Sub1-Sub3-Failed: true
|
|
// Sub1-Sub3-Aborted: false
|
|
// Sub1-Sub3-Output: expected 4 to be greater than 5
|
|
}
|