Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 测试复杂结构_C#_.net_Unit Testing_Expression Trees - Fatal编程技术网

C# 测试复杂结构

C# 测试复杂结构,c#,.net,unit-testing,expression-trees,C#,.net,Unit Testing,Expression Trees,我正在编写小文档编译器。我正在使用.NET表达式树来创建生成文档的代码。我认为不可能编写单元测试来测试生成的表达式树结构,因为它只是代码,我可以通过多种方式编写它来获得相同的结果。 我认为唯一的解决方案是编写集成测试来运行文档编译和执行,并检查输出结果。 我想知道在这种情况下,集成测试是否是唯一的选择 我认为编写测试生成的单元测试是不可能的 表达式树结构,因为它只是代码 我不同意 对于每个输入案例,您需要两个测试:一个用于确保为已知输入生成生成生成的表达式树,另一个用于检查在执行AST时发出的代

我正在编写小文档编译器。我正在使用.NET表达式树来创建生成文档的代码。我认为不可能编写单元测试来测试生成的表达式树结构,因为它只是代码,我可以通过多种方式编写它来获得相同的结果。 我认为唯一的解决方案是编写集成测试来运行文档编译和执行,并检查输出结果。 我想知道在这种情况下,集成测试是否是唯一的选择

我认为编写测试生成的单元测试是不可能的 表达式树结构,因为它只是代码

我不同意


对于每个输入案例,您需要两个测试:一个用于确保为已知输入生成生成生成的表达式树,另一个用于检查在执行AST时发出的代码。“不可能”?几乎没有。

了解这个系统是如何实现的(特别是使用的语言)会很有用。刚刚更新。我使用的是.Net(C#),我添加了一些标记,以便适当的人可以找到您的问题。嗯,是的,我同意这是可能的,但是检查表达式树是否值得。内部代码实现中的任何微小更新都会导致红色测试,即使它是正确的代码。有什么替代方案?不检查吗?在单元测试中发现您的ATS生成被破坏或生成的代码错误会更容易吗?我更喜欢第一个。是的,当然你必须维护测试和代码。谢谢你的回答。另一种选择是编写集成测试,正如我在问题中所写的那样。当然,测试将取决于AST生成器和文档创建代码。