我的测试有问题。有一些花哨的程序的算法。该算法从 [-999,999; 范围内获取一个随机数;+999,999],将其视为表中的 id 号,并在数据库中执行一些随机操作。这意味着我需要大量调用该方法以确保随机数分布正确。
我想使用 TDD 编写所有代码(只是为了多学一点)。
问题是我不知道如何在考虑到 TDD 原则的情况下测试算法。
根据 TDD,如果不先编写测试,则不应运行任何代码。
我想到的解决方案之一是在主类中有一个名为 debug(text) 的虚拟方法。此方法在生产代码中不会执行任何操作。但是,然后我将创建一个重载此方法的子类,这一次它将存储一些有趣的信息。稍后可以通过测试使用此信息来确定该功能是否正常工作。数据库连接将被模拟并且什么也不做。
另一种解决方案是创建一个模拟数据库连接,该连接将存储有趣的信息,稍后在测试中使用。但是,创建这样一个连接将是大量的工作,我认为不值得花时间在上面。
稍后将进行集成测试以检查数据库是否正确更改。但是集成测试不是 TDD 的一部分。
我是否遇到了 TDD 失败、无用或太难使用的地方?