gpt4 book ai didi

java - junit中测试用例计算超时值的因素有哪些

转载 作者:行者123 更新时间:2023-12-02 04:36:53 25 4
gpt4 key购买 nike

public class JUnitTimeout {
@Test(timeout = 100)
public void infinity() {
//Some code to test
}
}

为 junit 测试用例指定特定超时值时需要考虑哪些性能因素。

例如@Test(timeout = 100)你如何在这里给出一个超时值,它是 100

最佳答案

我不会使用timeout进行常规单元测试。这些测试在不同的计算机上运行,​​具有不同的操作系统,并且运行着不同数量的其他进程。这反过来会使你的测试失败,并且在许多情况下也会使你的构建(ant、maven)失败。设置接近调用该方法通常所需的超时只会变得很麻烦,看似随机地停止构建。

timeout 可用于集成测试,该测试不会在每次构建时运行。例如,如果有一项非功能性要求,规定 Web 服务的响应时间不应超过 2 秒,则可以在部署新版本之前运行调用实际 Web 服务的超时为 2 秒的测试,以确保确保该要求没有被破坏。

编辑:实际上,我找到了在常规单元测试中使用超时的原因。我注意到我的构建中的一些测试花费了大量时间,结果是对 SOAP 客户端无法连接时发生的情况进行测试,并且通过尝试调用无效 URL 进行测试。问题是有 20 秒的超时时间,因此每个构建都需要额外花费一分钟来进行三个测试。我通过创建一个 MethodRule 来解决这个问题,因此可以为每个类添加一次超时,而不是在每个测试方法中添加一次。因此,识别会大大减慢构建速度的测试就是一个用例。我将超时设置为 3-5 秒,任何超过此值的时间都可能会花费不必要的时间,并且可能会减慢构建速度。

关于java - junit中测试用例计算超时值的因素有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30636760/

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