Skip to content

Commit 1f9913c

Browse files
committed
refactor: retranslate 09.3.md
* modify the name of section 9.3 in SUMMARY.md * delete the description of "named test" (There is no official reference about it)
1 parent 975e710 commit 1f9913c

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

SUMMARY.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
* [第九章 测试](chapter09/09.0.md)
4444
- 9.1 [testing - 单元测试](chapter09/09.1.md)
4545
- 9.2 [testing - 基准测试](chapter09/09.2.md)
46-
- 9.3 [testing - 子测试](chapter09/09.3.md)
46+
- 9.3 [testing - 子测试与子基准测试](chapter09/09.3.md)
4747
- 9.4 [testing - 运行并验证示例](chapter09/09.4.md)
4848
- 9.5 [testing - 其他功能](chapter09/09.5.md)
4949
- 9.6 [httptest - HTTP 测试辅助工具](chapter09/09.6.md)

chapter09/09.3.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# testing - 子测试与子基准测试 #
22

3-
从 Go 1.7 开始,引入了一个新特性:子测试,又叫 命名测试 (named tests),它意味着您现在可以拥有嵌套测试,这对于自定义(和过滤)给定测试的示例非常有用
3+
从 Go 1.7 开始,引入了一个新特性:子测试(subtests)与子基准测试(sub-benchmarks),它意味着您现在可以拥有嵌套测试,这对于过滤执行特定测试用例非常有用
44

5-
T 和 B 的 Run 方法允许定义子单元测试和子基准测试,而不必为每个子测试和子基准定义单独的函数。这使得可以使用 Table-Driven 的基准测试和创建层级测试。它还提供了一种共享通用 `setup``tear-down` 代码的方法:
5+
T 和 B 的 `Run` 方法允许定义子单元测试和子基准测试,而不必为它们单独定义函数。这便于创建基于 Table-Driven 的基准测试和层级测试。它还提供了一种共享通用 `setup``tear-down` 代码的方法:
66

77
```go
88
func TestFoo(t *testing.T) {
@@ -13,17 +13,17 @@ func TestFoo(t *testing.T) {
1313
// <tear-down code>
1414
}
1515
```
16-
每个子测试和子基准测试都有一个唯一的名称:顶级测试的名称和传递给 Run 的名称的组合,以斜杠分隔,并具有用于消歧的可选尾随序列号
16+
每个子测试和子基准测试都有一个唯一的名称:由顶层测试的名称与传递给 `Run` 的名称组成,以斜杠分隔,并具有可选的尾随序列号,用于消除歧义
1717

18-
`-run``-bench` 命令行标志的参数是与测试名称相匹配的非固定的正则表达式。对于具有多个斜杠分隔元素(例如子测试)的测试,该参数本身是斜杠分隔的,其中表达式依次匹配每个名称元素。因为它是非固定的,一个空的表达式匹配任何字符串。例如,使用 " 匹配 " 表示 " 其名称包含 "
18+
命令行标志 `-run``-bench` 的参数是非固定的正则表达式,用于匹配测试名称。对于由斜杠分隔的测试名称,例如子测试的名称,它名称本身即可作为参数,依次匹配由斜杠分隔的每部分名称。因为参数是非固定的,一个空的表达式匹配任何字符串,所以下述例子中的 “匹配” 意味着 “顶层/子测试名称包含有”
1919

2020
```
21-
go test -run '' # Run 所有测试
22-
go test -run Foo # Run 匹配 "Foo" 的顶层测试,例如 "TestFooBar"。
23-
go test -run Foo/A= # 匹配顶层测试 "Foo",运行其匹配 "A=" 的子测试。
24-
go test -run /A=1 # 运行所有匹配 "A=1" 的子测试。
21+
go test -run '' # 执行所有测试
22+
go test -run Foo # 执行匹配 "Foo" 的顶层测试,例如 "TestFooBar"。
23+
go test -run Foo/A= # 对于匹配 "Foo" 的顶层测试,执行其匹配 "A=" 的子测试。
24+
go test -run /A=1 # 执行所有匹配 "A=1" 的子测试。
2525
```
26-
子测试也可用于控制并行性。所有的子测试完成后,父测试才会完成。在这个例子中,所有的测试是相互并行运行的,当然也只是彼此之间,不包括定义在其他顶层测试的子测试
26+
子测试也可用于程序并行控制。只有子测试全部执行完毕后,父测试才会完成。在下述例子中,所有子测试之间并行运行,此处的 “并行” 只限于这些子测试之间,并不影响定义在其他顶层测试中的子测试
2727

2828
```go
2929
func TestGroupedParallel(t *testing.T) {
@@ -36,7 +36,7 @@ func TestGroupedParallel(t *testing.T) {
3636
}
3737
}
3838
```
39-
在并行子测试完成之前,Run 方法不会返回,这提供了一种测试后清理的方法
39+
在所有子测试并行运行完毕之前,`Run` 方法不会返回。下述例子提供了一种方法,用于在子测试并行运行完毕后清理资源
4040

4141
```go
4242
func TestTeardownParallel(t *testing.T) {

0 commit comments

Comments
 (0)