Mat*_*att 1 c# unit-testing assert
我正在编写一个代码生成器,它将接受一个数据表,并使用它将从它在数据表中找到的内容生成样板 c# 代码。
我正在创建 ac# 代码文件,并将其与代码生成器生成的字符串进行比较。
我从磁盘读取代码文件到一个字符串,并将其与生成的字符串进行比较,并将该字符串作为参数传递给 Assert.AreEqual - 失败。如果我将生成的字符串写出到文本文件并进行比较,文本看起来相同 - 但是文件大小略有不同,并且使用文件比较实用程序,文件末尾似乎有一个额外的大写 ascii 类型字符这是通过我的代码生成器创建的。
关于“upper ascii”字符,如果我将文件与十六进制编辑器进行比较,则在使用 Visual Studio 创建的文件的开头和结尾处有一些额外的十六进制值,这些值在我的应用程序创建的文件中不存在. 开头的那些十六进制值为:“EF BB BF”,末尾的值为:“0D 0A”。
另一个可能解释某些事情的线索:当我将生成的文件添加到 Visual Studio 中的项目时,我看到以下消息:“以下文件中的行尾不一致。是否要规范化行尾? ”
单元测试内容:
[TestMethod]
public void TestGenerateBDO()
{
const string originalCodePath = @"c:\temp\UnitTestGenerator\BugSource.cs";
BusinessDomainGenerator generator =
new BusinessDomainGenerator(new System.Data.DataTable(), "BugsBDO", "Bug");
// this adds the body of the text file
AddTestGenerateBDOCodeLines(generator);
// I've tried using the 2nd parameter of ReadAllText to pass
// different encodings - no difference
string originalCode = System.IO.File.ReadAllText(originalCodePath);
string formattedCode = generator.GetGeneratedCode();
Assert.AreEqual(originalCode, formattedCode);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |