Skip to content

Commit 9beddc9

Browse files
authored
Consistently use testify for test assertions (#8)
This repo already has a dependency to `stretchr/testify`. Use it consistently across all tests. Separately, improve temporary file creation using `t.TempDir`, which would automatically clean up the files after test ends.
1 parent b7d2319 commit 9beddc9

3 files changed

Lines changed: 28 additions & 66 deletions

File tree

config/settings_test.go

Lines changed: 15 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package config
22

33
import (
4-
"github.com/stretchr/testify/require"
54
"os"
5+
"path/filepath"
66
"testing"
77
"time"
88

99
"github.com/spf13/cobra"
1010
"github.com/spf13/viper"
11+
"github.com/stretchr/testify/require"
1112
)
1213

1314
func TestArgumentPrecedence(t *testing.T) {
@@ -71,13 +72,7 @@ func TestArgumentPrecedence(t *testing.T) {
7172
viper.Reset()
7273

7374
// Create temporary config file
74-
configFile, err := createTempConfigFile(t, tt.configContent)
75-
if err != nil {
76-
t.Fatalf("Failed to create temp config file: %v", err)
77-
}
78-
defer func() {
79-
require.NoError(t, os.Remove(configFile))
80-
}()
75+
configFile := createTempConfigFile(t, tt.configContent)
8176

8277
// Create test command with flags
8378
cmd := &cobra.Command{
@@ -99,34 +94,22 @@ func TestArgumentPrecedence(t *testing.T) {
9994
// Parse CLI args
10095
if len(tt.cliArgs) > 0 {
10196
cmd.SetArgs(tt.cliArgs)
102-
if err := cmd.Execute(); err != nil {
103-
t.Fatalf("Failed to parse CLI args: %v", err)
104-
}
97+
require.NoError(t, cmd.Execute(), "Failed to parse CLI args")
10598
}
10699

107100
// Initialize Viper
108-
if err := InitializeViper(cmd); err != nil {
109-
t.Fatalf("Failed to initialize Viper: %v", err)
110-
}
101+
require.NoError(t, InitializeViper(cmd), "Failed to initialize Viper")
111102

112103
// Load config file
113-
if err := LoadConfigFile(configFile); err != nil {
114-
t.Fatalf("Failed to load config file: %v", err)
115-
}
104+
require.NoError(t, LoadConfigFile(configFile), "Failed to load config file")
116105

117106
// Resolve settings
118107
settings := ResolveSettings()
119108

120109
// Verify expectations
121-
if settings.StatsInterval != tt.expectedStats {
122-
t.Errorf("StatsInterval: expected %v, got %v", tt.expectedStats, settings.StatsInterval)
123-
}
124-
if settings.Workers != tt.expectedWorkers {
125-
t.Errorf("Workers: expected %d, got %d", tt.expectedWorkers, settings.Workers)
126-
}
127-
if settings.TPS != tt.expectedTPS {
128-
t.Errorf("TPS: expected %f, got %f", tt.expectedTPS, settings.TPS)
129-
}
110+
require.Equal(t, tt.expectedStats, settings.StatsInterval, "StatsInterval: expected %v, got %v", tt.expectedStats, settings.StatsInterval)
111+
require.Equal(t, tt.expectedWorkers, settings.Workers, "Workers: expected %d, got %d", tt.expectedWorkers, settings.Workers)
112+
require.Equal(t, tt.expectedTPS, settings.TPS, "TPS: expected %f, got %f", tt.expectedTPS, settings.TPS)
130113
})
131114
}
132115
}
@@ -153,22 +136,10 @@ func TestDefaultSettings(t *testing.T) {
153136
}
154137

155138
// Helper function to create temporary config files for testing
156-
func createTempConfigFile(t *testing.T, content string) (string, error) {
157-
tmpFile, err := os.CreateTemp("", "test-config-*.json")
158-
if err != nil {
159-
return "", err
160-
}
161-
162-
if _, err := tmpFile.WriteString(content); err != nil {
163-
require.NoError(t, tmpFile.Close())
164-
require.NoError(t, os.Remove(tmpFile.Name()))
165-
return "", err
166-
}
167-
168-
if err := tmpFile.Close(); err != nil {
169-
require.NoError(t, os.Remove(tmpFile.Name()))
170-
return "", err
171-
}
172-
173-
return tmpFile.Name(), nil
139+
func createTempConfigFile(t *testing.T, content string) string {
140+
t.Helper()
141+
destination := filepath.Join(t.TempDir(), "test-config.json")
142+
err := os.WriteFile(destination, []byte(content), 0644)
143+
require.NoError(t, err, "Failed to create temp config file: %v", err)
144+
return destination
174145
}

utils/service/parallel_test.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,24 @@ package service
33
import (
44
"errors"
55
"testing"
6+
7+
"github.com/stretchr/testify/require"
68
)
79

810
func TestParallelOk(t *testing.T) {
911
x := [10]int{}
10-
if err := Parallel(func(s ParallelScope) error {
12+
err := Parallel(func(s ParallelScope) error {
1113
for i := range x {
1214
s.Spawn(func() error {
1315
x[i] = i
1416
return nil
1517
})
1618
}
1719
return nil
18-
}); err != nil {
19-
t.Fatal(err)
20-
}
20+
})
21+
require.NoError(t, err)
2122
for want, got := range x {
22-
if want != got {
23-
t.Fatalf("x[%d] = %d, want %d", want, got, want)
24-
}
23+
require.Equal(t, want, got, "x[%d] = %d, want %d", want, got, want)
2524
}
2625
}
2726

@@ -40,15 +39,11 @@ func TestParallelFail(t *testing.T) {
4039
}
4140
return nil
4241
})
43-
if !errors.Is(err, wantErr) {
44-
t.Fatalf("err = %v, want %v", err, wantErr)
45-
}
42+
require.ErrorIs(t, wantErr, err, "err = %v, want %v", err, wantErr)
4643
for want, got := range x {
4744
if want%2 == 0 {
4845
want = 0
4946
}
50-
if want != got {
51-
t.Fatalf("x[%d] = %d, want %d", want, got, want)
52-
}
47+
require.Equal(t, want, got, "x[%d] = %d, want %d", want, got, want)
5348
}
5449
}

utils/wait_test.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,16 @@ import (
44
"encoding/json"
55
"testing"
66
"time"
7+
8+
"github.com/stretchr/testify/require"
79
)
810

911
func TestJSON(t *testing.T) {
1012
var got, want struct{ X Duration }
1113
want.X = Duration(100 * time.Millisecond)
1214
j, err := json.Marshal(want)
13-
if err != nil {
14-
t.Fatal(err)
15-
}
15+
require.NoError(t, err)
1616
t.Logf("%s", j)
17-
if err := json.Unmarshal(j, &got); err != nil {
18-
t.Fatal(err)
19-
}
20-
if err := TestDiff(want, got); err != nil {
21-
t.Fatal(err)
22-
}
17+
require.NoError(t, json.Unmarshal(j, &got))
18+
require.NoError(t, TestDiff(want, got))
2319
}

0 commit comments

Comments
 (0)