gpt4 book ai didi

java - 随机算法的 TDD

转载 作者:行者123 更新时间:2023-11-28 20:02:04 25 4
gpt4 key购买 nike

我遇到了测试问题。有一些花哨的程序的算法。该算法从范围 [-999,999; +999,999],将其视为表中的 ID 号,并在数据库中执行一些随机操作。这意味着我需要多次调用该方法以确保随机数分布正确。

我想使用 TDD 编写所有代码(只是为了多学习一点)。

问题是我不知道如何用TDD原理测试算法。

根据 TDD,如果不先编写测试,则不应运行任何代码。

我想到的解决方案之一是在主类中有一个名为 debug(text) 的虚拟方法。此方法在生产代码中不会执行任何操作。然而,我会创建一个重载此方法的子类,这次它会存储一些有趣的信息。稍后测试可以使用此信息来确定该功能是否正常工作。数据库连接将被模拟并且什么都不做。

另一种解决方案是创建一个模拟数据库连接来存储有趣的信息,稍后在测试中使用。但是,创建这样的连接需要大量工作,我认为不值得花时间在上面。

稍后会有集成测试来检查数据库是否正确更改。但是集成测试不是 TDD 的一部分。

我是否遇到了 TDD 失败、无用或难以使用的情况?

最佳答案

它是您的随机数函数吗?

它是:随机数生成器应该在使用它的任何东西之外进行测试。

它不是:您根本不应该测试它,除非您确实需要验证它的随机性。 IMO 不是一个很好的投资返回率,但这完全取决于您的实际需求。

DB 功能应该假定 RNG 实际上是 R,并且应该从 RNG 中单独进行测试——在测试期间,您可能不想使用 RNG。至少,您可能希望为 RNG 播种以使测试可重复——这可能会使正确性更难验证。

关于java - 随机算法的 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com