单元测试的价值是否随着单元测试的复杂性而降低?

Does the value of unit tests decrease with the complexity of the unit test?

我现在应该为我的函数执行的复杂算法编写单元测试。该函数在调用时采用两个强制参数。基于两个参数的组合,该函数做了 return 一些事情。

function ReturnDesiredParagraphStyle(currParagraphStyle, nextParagraphStyle) 
{
    // logic
}

现在的问题是,要测试输入的任意组合以及函数所需输出的正确性,我必须在单元测试中编写复杂的逻辑,因为可能的输入太多(每个大约 50 个)争论)。复杂的逻辑将是一个循环,目的是我不必在单元测试中手动键入每个输入组合。

我明白大多数时候写这个单元测试会提供一个安全层,但是这不会让单元测试的概念有点荒谬吗(因为单元测试中的逻辑会如此复杂,没有什么可以测试单元测试中的逻辑)?

您在单元测试中的复杂逻辑将完全是您在要测试的函数中编写的逻辑。所以那根本没有意义。

在某些时候,当函数确实根据两个或多个参数计算 return 值时,如果不同输入组合的数量太多,则几乎不可能编写单元测试。这确实发生得很快(指数级)。

当然,只测试几种不同的组合确实有一定意义。