簡體   English   中英

如何對文件或文檔進行單元測試?

[英]How to unit test a file or document?

首先,如果這是一個不合適的問題,我將不熟悉它,並表示歉意。

在我正在研究的項目中,有一種創建文檔(.RTF)的方法。 傳遞參數后,我從此方法獲取rtfString。 我需要測試的是所創建文檔的頁碼。 由於此方法的輸出是字符串,因此我正在將其轉換為存儲在我的計算機上的文檔。 然后,我手動打開文檔並檢查編號。

這是我用來將字符串轉換為文檔的代碼。 輸出是rtfString。

string outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "testHtmlToRtf.rtf");
if (System.IO.File.Exists(outputPath))
{
    System.IO.File.Delete(outputPath);
}
System.IO.File.WriteAllText(outputPath, output);

我感覺這不是一個好的測試實踐。 但是我不知道該怎么辦。 請任何人就此問題給我一些建議或好的教程。

這是我的測試用例。 但是我認為這沒有用。

public void PageNumberingTest()
{
    //Arrange
    string htmlContent = "<div>This is test content.</div>";
    string header = "<div>test header</div>";
    string footer = "<div>test footer</div>";

    //Act
    var output = _rtf.ConvertToString(htmlContent, header, footer);

    //Assert
    //To run the tests uncomment following code
    string outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "testHtmlToRtf.rtf");
    if (System.IO.File.Exists(outputPath))
    {
        System.IO.File.Delete(outputPath);
    }

    System.IO.File.WriteAllText(outputPath, output);
    output.ShouldNotBeNull();
} 

如果您的應用基於標准生成文件,則最好在已知數量的另一個應用中打開該文件。 否則,您只是在編寫不知道是否正確的測試,以測試您不知道正確或不正確的人工制品。 有太多未知數。

由於它是RTF,因此無論是WordPad還是Microsoft Word都可以在已建立的應用程序中查看文件。 這是我過去所做的,並且效果很好。

如果您是根據協議進行開發的話,也可以這樣說-確保可以斷言字節似乎正確,但是在嘗試與另一個應用程序交談之前,您可能並不確定。

我感覺這不是一個好的測試實踐。

有些測試是手動的 ,太難了或者無法自動測試。 為此,編寫單元測試代碼可能是不明智的,應使用我所說的已知應用程序進行手動測試來代替。

你可以用它來測試

MSTEST

Nunit測試

XUnit測試

最后,您可以使用斷言來正確執行所需的量。

  Assert.NotNull(output)

要么

  Assert.Equal(Expected,output) 

暫無
暫無

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

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