首先,我是新手,如果这个问题不合适,我会道歉。
在我正在研究的项目中,有一种创建文档(.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();
}
答案 0 :(得分:1)
在您的应用基于标准生成文件的情况下,最好在已知数量的其他应用中打开文件。否则,您只是在编写不知道是否正确的测试,以测试您不知道正确或不正确的人工制品。未知数太多。
由于它是RTF,因此可以在已建立的应用程序中查看文件,无论它是写字板还是 Microsoft Word 。这是我过去所做的,并且效果很好。
如果您是根据协议进行开发的话,也可以这样说-确保您可以断言字节似乎正确,但是直到尝试与另一个应用程序交谈之前,您还是不确定。
我觉得这不是一个很好的测试方法。
有些测试是手动的,要么太难,要么无法自动测试。为此,编写单元测试代码可以说是不明智的,应该用我所说的已知应用替换为手动测试。
答案 1 :(得分:1)
您可以使用它进行测试
最后,您可以使用断言适量执行所需的操作。
Assert.NotNull(output)
或
Assert.Equal(Expected,output)