首頁 > 後端開發 > C++ > 如何將複雜參數(例如自訂類別清單)傳遞給 XUnit 理論?

如何將複雜參數(例如自訂類別清單)傳遞給 XUnit 理論?

Patricia Arquette
發布: 2025-01-02 14:10:38
原創
298 人瀏覽過

How Can I Pass Complex Parameters, Like Lists of Custom Classes, to XUnit Theories?

將複雜參數傳遞給理論

問題:

XUnit 允許使用 InlineData 屬性建立參數化測試。然而,在處理複雜參數(例如自訂類別清單)時會出現挑戰。

答案:

XUnit 提供各種 Data 屬性,包括 MemberData。透過實作傳回 IEnumerable 的屬性,集合中的每個項目都可以解包為單一理論方法呼叫的參數。

MemberData 範例:

public class MyClass { public string Name { get; set; } }

public static void WriteReportsToMemoryStream(
    IEnumerable<MyClass> listReport,
    MemoryStream ms,
    StreamWriter writer) { ... }

[Theory, MemberData(nameof(Data))]
public void WriteReports(IEnumerable<MyClass> listReport)
{
    using (var ms = new MemoryStream())
    {
        using (var writer = new StreamWriter(ms))
        {
            WriteReportsToMemoryStream(listReport, ms, writer);
            // ...
        }
    }
}

public static IEnumerable<object[]> Data => new[]
{
    new object[] { new[] { new MyClass { Name = "Item1" } } },
    new object[] { new[] { new MyClass { Name = "Item2" } } },
};
登入後複製

Data 屬性產生一個可枚舉的物件數組,其中每個數組對應於 WriteReports 的一組參數方法。

以上是如何將複雜參數(例如自訂類別清單)傳遞給 XUnit 理論?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板