我正在写一个光线跟踪器,我想用TDD编写自上而下的方法. 我不想给你带来细节,所以简而言之,程序将以一种方式工作,你给它一个指定的场景(例如球体的坐标及其半径),它将输出一个图像
我不想给你带来细节,所以简而言之,程序将以一种方式工作,你给它一个指定的场景(例如球体的坐标及其半径),它将输出一个图像被回报的3d球形.
我可以在世界上如何首先测试这种行为?
我知道我可以先测试一下.render()函数内部的一些内部算法,但我想自上而下,我不能提前预测生成的图像.我知道我可以测试所有黑色或指定尺寸,但如果我想严格使用TDD那些测试不会让我任何地方:“你不应该实现超过它通过测试的要求”.
那么,有什么想法吗?
不要尝试自动测试图像.您的眼球在验证图像方面比您可能编写的任何代码都要好得多.作为回归测试,您可以捕获图像输出并进行像素比较,但这将是一个脆弱的回归测试,而不是TDD单元测试.将呈现逻辑提取到单独的可测试类中.我假设你有很多计算和算法可以TDD,除非你能找到一个现有的库(这可能值得寻找). TDD是关于设计的,现在它告诉你将渲染算法从显示中分离出来.