测试自己的cmdlet

时间:2013-01-14 14:44:57

标签: .net powershell

测试用C#编写的cmdlet有什么常见做法吗? 我对这样的事感兴趣:

[Test]
public void Test1()
{
    var cmdlet = new MyCmdlet();
    cmdlet.Property1 = "something 1";
    cmdlet.Property2 = "something 2";

    var actualOutput = Execute(cmdlet);

    AssertCmdLetOut(expectedOutput, actualOutput);  
}

2 个答案:

答案 0 :(得分:0)

不是很优雅。但仍然比什么都没有:here

答案 1 :(得分:0)

假设此Cmdlet:

[Cmdlet(VerbsCommon.Get, "Lorem")]
public class LoremCmdlet : Cmdlet
{
    protected override void ProcessRecord()
    {
        WriteObject ("Lorem Ipsum");
    }
}

样本xunit测试可能是:

public class LoremCmdletTests
{
    [Fact]
    public void Should_Return_a_Canoncial_String()
    {
        // arrange
        LoremCmdlet cmdlet = new LoremCmdlet();
        string actual = null;

        // act
        IEnumerator result = cmdlet.Invoke().GetEnumerator();
        result.MoveNext();
        actual = result.Current.ToString();

        // assert
        Assert.Equal("Lorem Ipsum", actual);
    }

}