Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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#_Unit Testing_Unity3d - Fatal编程技术网

C# 如何对不透明代码进行单元测试?

C# 如何对不透明代码进行单元测试?,c#,unit-testing,unity3d,C#,Unit Testing,Unity3d,我在Unity3D项目中使用了一些旧的C#代码(特别是这个),我想对其进行更新,以使用适当的泛型、重构和清理 理想情况下,我会在不破坏任何东西的情况下这样做;代码运行正常,算法实现良好。单元测试显然可以帮助我在不把事情搞砸的情况下重构它 不幸的是,我真的不懂数学或算法,代码很密集,没有注释 如何为这样的代码编写单元测试?单元测试都是关于方法的输入和输出 因此,您可以选择方法,使用多组参数执行它们,并存储结果 然后,在单元测试中,您使用相同的参数集执行相同的方法,并且您知道作为输出需要什么。如果输

我在Unity3D项目中使用了一些旧的C#代码(特别是这个),我想对其进行更新,以使用适当的泛型、重构和清理

理想情况下,我会在不破坏任何东西的情况下这样做;代码运行正常,算法实现良好。单元测试显然可以帮助我在不把事情搞砸的情况下重构它

不幸的是,我真的不懂数学或算法,代码很密集,没有注释


如何为这样的代码编写单元测试?

单元测试都是关于方法的输入和输出

因此,您可以选择方法,使用多组参数执行它们,并存储结果


然后,在单元测试中,您使用相同的参数集执行相同的方法,并且您知道作为输出需要什么。如果输出发生变化,说明您弄坏了某些东西。

不要忘记为无效输入和转角情况获取输出。否则,您将只知道重构后的基本功能是健全的,但复杂的情况可能已经被破坏。了解一点图论将有助于检测这些关注点。事实上,在“参数集”中包括一个经典参数,然后是角情况(null,-1,0,String.Empty,等等)