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

Chr*_*rth 2 c# unit-testing unity-game-engine

我在Unity3D项目中使用了一些旧的C#代码(特别是这个Fortune的Voronoi图算法),我想更新它以使用适当的泛型,重构和一般清理.

理想情况下,我这样做不会破坏任何东西; 代码工作,它的算法实现是合理的.单元测试显然可以帮助我重构它而不会搞砸它.

不幸的是,我真的不理解数学或算法,而且代码密集且无评论.

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

Lou*_*ann 5

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

所以你可以单独输出方法,用几组参数执行它们,然后存储结果.

然后在单元测试中,使用相同的参数集执行相同的方法,并且您知道期望输出的内容.如果输出改变,你就会破坏某些东西.