我正在学习使用Pester进行单元测试,并且在使用Before / After块时遇到了一个奇怪的问题。我的单元测试代码如下:
Describe "Before/After Blocks" {
Context "BeforeEach/AfterAll" {
BeforeAll {
$value = 0
Write-Host "->Initial value is $value"
}
BeforeEach {
$value++
}
It "value is 1" {
$value | Should -Be 1
}
It "value is 2" {
$value | Should -Be 2
}
It "value is 3" {
$value | Should -Be 3
}
AfterAll {
Write-Host "->Final value is $value"
}
}
}
好吧,正如您在代码中看到的那样,我的目的是初始化变量,并查看它如何通过BeforeEach块递增。这是输出:
上下文BeforeEach / AfterAll
->初始值为0
[+] value is 1 [+] value is 2 [+] value is 3
->最终值为0
该变量被初始化为0,并且在任何It Block递增之前,该声明未失败。但是AfterAll块表示变量值是0,是初始值,而不是我期望的3。
为什么?
谢谢。