如何使用Pester

时间:2017-09-08 11:09:30

标签: unit-testing powershell

我的pester代码有问题,我应该模拟某个函数(Get-State)来返回一个复数值,以便$StartState可以有一个值。凭借我的Powershell级别,我似乎无法创建自定义对象。

    $State  = Get-State

    $StartState = $State.Where({$_.Name -eq "State_SUccess"}).state

我尝试使用带有此代码的自定义对象来模拟Get-State函数

    $State = [PSCustomObject]@{Name = "State_SUccess"}
    if($State.Name -eq "State_SUccess""){
    $State = [PSCustomObject]@{Name = @{state = 1}}
    }
    else
    {
    }
    $BatchState.statusName.state

但它没有做到这一点,$StartState仍然没有价值,因为也许我必须在哪里创建一个自定义方法?

1 个答案:

答案 0 :(得分:0)

我没有太多关于你打算做什么的信息,但我认为它是这样的:

将第一部分更改为:

$State  = Get-State

$StartState = $State.Where({$_.Name -eq "State_SUccess"})

$State = [PSCustomObject]@{Name = "State_SUccess"}
if($State.Name -eq "State_SUccess")
{
    $State = [PSCustomObject]@{Name = @{state = 1}}
}
else
{
}
$StartState.Name
这是一种相当奇怪的方法...... 也许你需要这样的东西:

$State = @{Name = "State_SUccess"}
if($State.Name -eq "State_SUccess")
{
    $State['State'] = 1
}
else
{
}
$StartState