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

Roc*_*net 5 complexity-theory unit-testing

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

谢谢

雨果

Fil*_*erg 3

你提出的这个观点非常好。当然,您为此使用了单元测试。

单元测试主要是测试代码结果的一种“方式”。您测试它是否执行了预期的操作,以及当您希望它失败时它是否会失败。

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

单元测试的一些伪代码非常耗时,您可能知道如何解决这个问题,但这是一种相当不错的测试方法:

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);

}
Run Code Online (Sandbox Code Playgroud)

另外你想想,你的测试会不会太多了?不,你不能。测试所有结果是件好事,即使你测试的是“愚蠢”的东西,如果你不测试某个结果而进化出了一个 bug,是否意味着它不存在,只是因为你没有看到它或者你没有测试过?:)