簡體   English   中英

具有多個測試用例的單元測試,用於返回不同對象類型的方法

[英]Unit test with multiple test cases, for method which returns different object types

我有靜態方法:

public static ReturnBaseClass GetValue(SimpleBaseClass simpleBaseClass)
{
    ReturnBaseClass returnBaseClass = null;

    if (simpleBaseClass is simpleInheritedClass1)
    {
        returnBaseClass = new ReturnInheritedClass1();
    }
    else if (simpleBaseClass is simpleInheritedClass2)
    {
        returnBaseClass = new ReturnInheritedClass2();
    }
    else if (simpleBaseClass is simpleInheritedClass3)
    {
        returnBaseClass = new ReturnInheritedClass3();
    }

    return returnBaseClass;
}

根據方法參數(simpleBaseClass)中對象的類型,方法應返回另一種對象。 這個'if else'分支很長,我想編寫簡單的單元測試來對此進行測試。 我堅持檢查返回對象類型。 我寫了測試方法:

[TestCase(new simpleInheritedClass1(), Type ReturnInheritedClass1)]
[TestCase(new simpleInheritedClass2(), )]
[TestCase(new simpleInheritedClass3(), )]
public void GetValueTest(SimpleBaseClass simpleBaseClass, Type type)
{

}

我在第一個測試用例(類型ReturnInheritedClass1)中所做的工作不起作用。 我不知道如何以這種方式將對象類型轉發到我的單元測試?

嘗試使用TestCaseSource屬性:

    [TestCaseSource("Source")]
    public void GetValueTest(SimpleBaseClass simpleBaseClass, ReturnInheritedClassBase simpleInheritedClass)
    {

    }

    private static readonly object[] Source = new object[]
    {
        new object[] { new SimpleInheritedClass1(), new ReturnInheritedClass1()},
        new object[] { new SimpleInheritedClass2(), new ReturnInheritedClass2()}
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM