gpt4 book ai didi

java - 为什么执行一组测试会得到与单独执行不同的结果?

转载 作者:行者123 更新时间:2023-12-01 19:50:32 26 4
gpt4 key购买 nike

我有两个测试。如果我告诉 Intellij 对它们进行测试(即测试包含它们的 junit 类),测试 2 将失败。如果我只运行测试 1,它就会通过。如果我随后运行测试 2,它就会通过。您知道为什么会出现这种差异吗?

我已经告诉测试 1 在测试结束时等待 10 秒,以大致模拟我手动执行测试 1 和测试 2 之间的间隙。

谢谢。

最佳答案

如果没有源代码可供查看,简单的答案是:您的测试不是独立的。

含义:它们通过某种共享资源以某种方式连接起来。每个测试都取决于该资源处于某种状态,但不知何故,您的清理工作要么丢失,要么“不够好”。例如,当您仅初始化 stub /模拟一次(在第一次启动之前),而不是每次测试一次时,就会发生这种情况。最坏的情况是,依赖关系位于生产代码中的某个地方(深处),例如某个类上的静态字段,该字段在执行第一个测试时被初始化,从而导致问题当第二个测试“到来”时。

对于任何更具体的(基于代码的)建议,您必须分别分享您的测试mcve与我们一起。

关于java - 为什么执行一组测试会得到与单独执行不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51448489/

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