Skip to content

Commit dba118e

Browse files
committed
test: add test cases for XXXNow functions.
1 parent 973d38f commit dba118e

File tree

2 files changed

+116
-2
lines changed

2 files changed

+116
-2
lines changed

equal_test.go

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package assert
22

3-
import "testing"
3+
import (
4+
"sync"
5+
"testing"
6+
)
47

58
type testStruct struct {
69
v int
@@ -44,6 +47,31 @@ func testDeepEqualAndNotDeepEqual(t *testing.T, assertion *Assertion, v1, v2 any
4447
} else if !isEqual && err != nil {
4548
t.Errorf("NotEqual(%v, %v) = %v, want = nil", v1, v2, err)
4649
}
50+
51+
isTerminated := true
52+
wg := sync.WaitGroup{}
53+
wg.Add(1)
54+
go func() {
55+
defer wg.Done()
56+
assertion.DeepEqualNow(v1, v2)
57+
isTerminated = false
58+
}()
59+
wg.Wait()
60+
if isEqual && isTerminated {
61+
t.Error("execution stopped, want do not stop")
62+
}
63+
64+
isTerminated = true
65+
wg.Add(1)
66+
go func() {
67+
defer wg.Done()
68+
assertion.NotDeepEqualNow(v1, v2)
69+
isTerminated = false
70+
}()
71+
wg.Wait()
72+
if !isEqual && isTerminated {
73+
t.Error("execution stopped, want do not stop")
74+
}
4775
}
4876

4977
func TestNilAndNotNil(t *testing.T) {
@@ -72,4 +100,29 @@ func testNilAndNotNil(t *testing.T, assertion *Assertion, v any, isNil bool) {
72100
} else if !isNil && err != nil {
73101
t.Errorf("Nil(%v) = %v, want nil", v, err)
74102
}
103+
104+
isTerminated := true
105+
wg := sync.WaitGroup{}
106+
wg.Add(1)
107+
go func() {
108+
defer wg.Done()
109+
assertion.NilNow(v)
110+
isTerminated = false
111+
}()
112+
wg.Wait()
113+
if isNil && isTerminated {
114+
t.Error("execution stopped, want do not stop")
115+
}
116+
117+
isTerminated = true
118+
wg.Add(1)
119+
go func() {
120+
defer wg.Done()
121+
assertion.NotNilNow(v)
122+
isTerminated = false
123+
}()
124+
wg.Wait()
125+
if !isNil && isTerminated {
126+
t.Error("execution stopped, want do not stop")
127+
}
75128
}

panic_test.go

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package assert
22

3-
import "testing"
3+
import (
4+
"sync"
5+
"testing"
6+
)
47

58
func TestPanic(t *testing.T) {
69
mockT := new(testing.T)
@@ -17,6 +20,35 @@ func TestPanic(t *testing.T) {
1720
}); err == nil {
1821
t.Error("Panic() = nil, want error")
1922
}
23+
24+
isTerminated := true
25+
wg := sync.WaitGroup{}
26+
wg.Add(1)
27+
go func() {
28+
defer wg.Done()
29+
a.Panic(func() {
30+
panic("expected panic")
31+
})
32+
isTerminated = false
33+
}()
34+
wg.Wait()
35+
if isTerminated {
36+
t.Error("execution stopped, want do not stop")
37+
}
38+
39+
isTerminated = true
40+
wg.Add(1)
41+
go func() {
42+
defer wg.Done()
43+
a.PanicNow(func() {
44+
// no panic
45+
})
46+
isTerminated = false
47+
}()
48+
wg.Wait()
49+
if !isTerminated {
50+
t.Error("execution not stopped, want stop")
51+
}
2052
}
2153

2254
func TestNotPanic(t *testing.T) {
@@ -34,4 +66,33 @@ func TestNotPanic(t *testing.T) {
3466
}); err == nil {
3567
t.Error("NotPanic() = nil, want error")
3668
}
69+
70+
isTerminated := true
71+
wg := sync.WaitGroup{}
72+
wg.Add(1)
73+
go func() {
74+
defer wg.Done()
75+
a.NotPanicNow(func() {
76+
// no panic
77+
})
78+
isTerminated = false
79+
}()
80+
wg.Wait()
81+
if isTerminated {
82+
t.Error("execution stopped, want do not stop")
83+
}
84+
85+
isTerminated = true
86+
wg.Add(1)
87+
go func() {
88+
defer wg.Done()
89+
a.NotPanicNow(func() {
90+
panic("unexpected panic")
91+
})
92+
isTerminated = false
93+
}()
94+
wg.Wait()
95+
if !isTerminated {
96+
t.Error("execution not stopped, want stop")
97+
}
3798
}

0 commit comments

Comments
 (0)