Я учусь проводить модульные тесты с Пестером, и у меня странная проблема с блоками До / После. Код моего модульного теста приведен ниже:
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. Это вывод:
Context BeforeEach / AfterAll
-> Начальное значение 0
[+] value is 1
[+] value is 2
[+] value is 3
-> Конечное значение 0
Переменная инициализируется равной 0, и перед тем, как любой ее блок будет увеличиваться, утверждения не потерпели неудачу. Но блок AfterAll сообщает, что значение переменной равно 0, начальное значение, а не 3, как я ожидаю.
Почему?
Спасибо.