【发布时间】:2020-06-25 23:17:57
【问题描述】:
我有一个函数想包含在我的单元测试中,但我不知道怎么做。该方法接受一个 ErrorRecord 对象(来自 Invoke-RestMethod 调用),获取状态代码并生成自定义错误消息。以下是调用的第一部分:
function Resolve-RestError {
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
$RequestError
)
$statusCode = $requestError.Exception.Response.StatusCode.value__
switch ($statusCode) {
我遇到的问题是重新创建 ErrorRecord 对象。我花了很多时间寻找重新创建错误对象的方法,但我无法准确地重新创建它。
在实际执行期间的ErrorRecord 对象中,访问Response.StatusCode 字段会返回一个带有代码描述的字符串。要访问实际值,您需要调用 Response.StatusCode.value__。似乎不可能重建内部 .value__ 变量,因为这是由 JIT 编译器完成的(据我了解)。有没有办法将 .value__ 属性添加到自定义对象,或者在我的测试期间简单地模拟该变量?
【问题讨论】:
标签: powershell unit-testing error-handling pester