網頁

Coding技巧:快速產生C#含測試資料的類別

Coding技巧:快速產生C#含測試資料的類別

在補測試程式的過程,有時需要提供假資料給測試程式以驗證正確性。因為是的過程,在資料庫中已經有測試資料,所有我想借由這些測試資料快速產出一個假的含資料的類別。但有些類別中的欄位非常多,而且很多又有階層關係,一字一字輸入轉回 C# 的資料類別又慢又沒效率

例如,我從 Postman 取得以下 JSON:

{
    "Region": [
        {
            "Region": ""
        },
        {
            "Region": "ILan"
        },
        {
            "Region": "Taipei"
        },
        {
            "Region": "Hsinchu"
        }
    ],
    "Year": [
        {
            "Year": "2019"
        },
        {
            "Year": "2018"
        }
    ],
    "Author": [
        {
            "Author": ""
        },
        {
            "Author": "Bruce"
        },
        {
            "Author": "Gina"
        },
        {
            "Author": "Carl"
        }
    ]
}

但我們想轉換為含資料類別,利用 Visual Studio 的 Paste JSON as Classes 功能,就可以得到 Model 類別:

public class Rootobject
{
    public Region[] Region { get; set; }
    public Year[] Year { get; set; }
    public Author[] Author { get; set; }
}

public class Region
{
    public string Region { get; set; }
}

public class Year
{
    public string Year { get; set; }
}

public class Author
{
    public string Author { get; set; }
}

但這 Model 類別我們專案早就有了。這不是我想要的 Data 類別。我們回到 API 專案,先下個中斷點,然後啟動專案,這裡我們借助 Oz-Code 裡的一個 Export 功能,你可以看一下官方 gif 的展示:


open export Serialization options

如果說有那個點不方便,也只有那個中斷點,然後需要進行一次整合測試才能取得我們想要的 Data 類別。現在我們可以快速的幫測試專案加入資料類別,以利測試專案使用。

7 則留言:

  1. 看來要把OZCode裝回來了....

    回覆刪除
    回覆
    1. 這樣的好物,為何 VS Team 不買下來 XD

      刪除
    2. 買下來就會廢掉了,不要忘了 Alive...

      刪除
    3. Alive,可憐的孩子,我也好想他,哭哭。(看著那不成器的 Live Unit Testing)

      刪除
  2. http://json2csharp.com/

    把JSON貼上去就能自動產生 class 了

    回覆刪除
    回覆
    1. 我文章有寫呀,Visual Studio本身有內建 json to class 的功能哦。但我要「含資料」的 class。

      刪除
    2. 漏看了 抱歉抱歉 感謝分享

      刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。