计算通过 JUnit 调用函数的次数

Posted

技术标签:

【中文标题】计算通过 JUnit 调用函数的次数【英文标题】:Counting times a function is called via JUnit 【发布时间】:2015-06-11 14:50:30 【问题描述】:

我想计算当我使用 websockets 和不使用 websockets 时进行 HTTP GET 的次数。我希望在使用 websockets 时使用一次,否则使用 n 次。我想通过 JUnit 来做到这一点,而且我恰好也在使用 Spring。是否有任何创造性的方法来计算我使用 Jersey 进行 GET 的次数?

client.target(.....).get(....)

如果不将生产代码与测试特定代码混在一起,我不知道该怎么做。

【问题讨论】:

【参考方案1】:

如果您的代码是使用接口定义的,那么我会使用装饰器模式来添加额外的行为。在这种情况下,其他行为将是跟踪调用次数。

如果您的具体类是通过 Spring 配置的,那么这种方法很容易配置。然后在 JUnit 测试的 Spring 资源中,对其进行修改以注入 Decorated 类。对现有的生产代码没有影响。

【讨论】:

【参考方案2】:

如果您添加一个静态变量 COUNT 并在每次调用时递增它 - 它根本不会损害生产。您不仅可以将此变量用于单元测试,还可以用于生产监控。

【讨论】:

以上是关于计算通过 JUnit 调用函数的次数的主要内容,如果未能解决你的问题,请参考以下文章

如何计算fibonacci函数的递归调用次数

递归函数

按名称或签名计算函数调用。 GCC、C++

1113: 递归调用的次数统计(函数专题)

Java如何控制方法的调用次数?

优化调用昂贵函数的次数