testing
# Node.js
const test = require("tape");
test((t) => {
const tt = [
{ a: 1, b: 1, ret: 2 },
{ a: 2, b: 3, ret: 5 },
{ a: 5, b: 5, ret: 10 },
];
t.plan(tt.length);
tt.forEach((tt) => {
t.equal(sum(tt.a, tt.b), tt.ret);
});
});
function sum(a, b) {
return a + b;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Output
$ node examples/example_test.js
TAP version 13
# (anonymous)
ok 1 should be equal
ok 2 should be equal
ok 3 should be equal
1..3
# tests 3
# pass 3
# ok
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# Go
package example
import (
"fmt"
"testing"
)
func TestSum(t *testing.T) {
for _, tt := range []struct {
a int
b int
ret int
}{
{1, 1, 2},
{2, 3, 5},
{5, 5, 10},
} {
t.Run(fmt.Sprintf("(%v + %v)", tt.a, tt.b), func(t *testing.T) {
ret := sum(tt.a, tt.b)
if ret != tt.ret {
t.Errorf("want %v, got %v", tt.ret, ret)
}
})
}
}
func sum(a, b int) int {
return a + b
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Output
$ go test -v examples/example_test.go
=== RUN TestSum
=== RUN TestSum/(1_+_1)
=== RUN TestSum/(2_+_3)
=== RUN TestSum/(5_+_5)
--- PASS: TestSum (0.00s)
--- PASS: TestSum/(1_+_1) (0.00s)
--- PASS: TestSum/(2_+_3) (0.00s)
--- PASS: TestSum/(5_+_5) (0.00s)
PASS
ok command-line-arguments 0.008s
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
编辑 (opens new window)
上次更新: 2022/09/30, 11:34:22