unit-testing - 单元测试以验证时间复杂度

标签 unit-testing complexity-theory

是否有人使用单元测试来验证代码的时间/空间复杂性?

谢谢

雨果

最佳答案

这是您提出的一个很好的观点。确保为此使用单元测试。

单元测试主要是测试代码结果的“方式”。您测试它是否按照预期的方式工作,并且在您希望它失败时失败。

时间和空间是两个非常重要的变量,您可能会“想要”更快的速度和较低的空间成本,但是程序实际上却相反,然后您得到一个错误,这是单元测试的目的,以查找错误并解决他们。

一些用于时间消耗的单元测试的伪代码,您可能知道如何解决此问题,但这是测试它的一种相当不错的方法:

Unit_Test_To_See_If_X_Takes_More_Than_Y_Seconds(int max_milli_seconds)
{
    int current_millis = getMillis();

    do_operations_on_objects_and_functions();

    int millis_after_executions = getMillis();

    int elapes_millis = millis_after_execution - current_millis;

    if ( elapsed_millis > max_milli_seconds )
      Assert(ERROR);

}

另外,当您考虑它时,您可以进行过多的测试吗?不,你不能。测试所有结果是很好的,即使您测试“愚蠢”的东西,如果您不测试结果并且有错误出现,这是否也就意味着它不存在,仅仅是因为您没有看到它而已还是没有测试? :)

关于unit-testing - 单元测试以验证时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/487211/

相关文章:

c# - .NET 单元测试 - 如何区分变量初始化的 TestMethods

c - 具有路径重建渐近复杂性的 levenshtein 距离实现

algorithm - Big O 表示法的复杂度顺序是什么?

java - 如何使用 O(n) 时间复杂度算法查找有效子字符串的数量

algorithm - 为什么快速排序被称为尾递归算法?

python - 将 python 字典的最坏情况时间复杂度优化为 O(1)

未安装的 python 模拟和库

python - 如何使用 pytest 只报告某种异常类型的失败?

python - 将文件上传到S3的模拟测试用例

java - Spring/JUnit - 运行并非真正的单元测试 "tests"