作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在努力让 Pester 测试失败或通过,这取决于 array
中的 objects
是否相等。
测试.ps1
#require Assert
#require Pester
$Expected = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
)
$Actual = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
)
Describe 'comparing arrays' {
Context 'Assert-Equivalent' {
it 'should be green' {
Assert-Equivalent -Actual $Expected -Expected $Expected
}
it 'should be green' {
Assert-Equivalent -Actual $Actual -Expected $Expected
}
it 'should be red' {
$Wrong = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'WROMG';Name2 = 'Text2'}
)
Assert-Equivalent -Actual $Wrong -Expected $Expected
}
}
Context 'Should be' {
it 'should be green' {
$Expected | Should -Be $Expected
}
it 'should be green' {
$Actual | Should -Be $Expected
}
it 'should be red' {
$Wrong = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'WROMG';Name2 = 'Text2'}
)
$Wrong | Should -Be $Expected
}
}
}
我们似乎无法做到这一点。我们是否使用了错误的 CmdLets?或者还有另一种检查方法吗?有时 array
也只是另一个对象的属性。因此需要进行深入比较。
最佳答案
当我想将一些“复杂”对象与 Pester 进行比较时,我使用 ConvertTo-Json。这并不理想,因为如果类型不匹配,可能会出现一些误报,但它通常可以完成工作。
$Expected = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
)
$Actual = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
)
Describe 'comparing arrays' {
Context 'Assert-Equivalent' {
it 'should be green' {
Assert-Equivalent -Actual ($Expected | ConvertTo-Json) -Expected ($Expected | ConvertTo-Json)
}
it 'should be green' {
Assert-Equivalent -Actual ($Actual | ConvertTo-Json) -Expected ($Expected | ConvertTo-Json)
}
it 'should be red' {
$Wrong = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'WROMG';Name2 = 'Text2'}
)
Assert-Equivalent -Actual ($Wrong | ConvertTo-Json) -Expected ($Expected | ConvertTo-Json)
}
}
Context 'Should be' {
it 'should be green' {
($Expected | ConvertTo-Json) | Should -Be ($Expected | ConvertTo-Json)
}
it 'should be green' {
($Actual | ConvertTo-Json) | Should -Be ($Expected | ConvertTo-Json)
}
it 'should be red' {
$Wrong = @(
[PSCustomObject]@{Name1 = 'Text1';Name2 = 'Text2'}
[PSCustomObject]@{Name1 = 'WROMG';Name2 = 'Text2'}
)
($Wrong | ConvertTo-Json) | Should -Be ($Expected | ConvertTo-Json)
}
}
}
关于arrays - 如何在 Pester 中将两个数组与自定义对象进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50870891/
我是一名优秀的程序员,十分优秀!