gpt4 book ai didi

java - SpringRunner/JUnit 运行/测试私有(private)(非测试)方法

转载 作者:行者123 更新时间:2023-12-02 09:59:28 27 4
gpt4 key购买 nike

我们有一个 Spring 5 应用程序,使用 JUnit 4 作为测试工具(使用 SpringRunner)。我们遇到一个问题,即未标记带有 @Test 注释的私有(private)帮助器方法正在作为测试运行。 IntelliJ 和 Maven 中都会发生这种情况。

方法签名是:

private Optional<TestSuiteJsonObject> createTestSuite(String name, TestType type) throws IOException, LicenseException {

测试类本身如下所示:

public class TestSuitesControllerTest extends ControllerTest

两者都没有注释。 ControllerTest 看起来像:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = CompanyTestApplication.class)
@AutoConfigureMockMvc
@Ignore
public class ControllerTest {
...
}

行为是这些测试方法使用 null 参数运行。我们根本不希望它们运行。此类中的其余方法都使用 @Test 注释进行了适当标记。

我想知道类/方法名称中的单词 test 是否会导致 JUnit 将其识别为可运行,但是更改两个名称类和方法没有效果。

在私有(private)方法中添加@Ignore也没有效果!

我们做错了什么?我们是否进入了另一个维度,其中测试工具实际上正在测试工程师的压力响应?

enter image description here

最佳答案

这是一个愚蠢的错误,但我将其留给 future 遇到同样情况的人。

我有两个方法同名。测试方法:

@Test
@WithMockUser(username = "admin", roles = "ADMIN")
public void createSuite() throws Exception { ... }

以及辅助方法:

private static Optional<TestSuiteJsonObject> createSuite(String name, TestType type) { ... }

我们以某种方式掩盖了这一点。 🤦‍♂️

关于java - SpringRunner/JUnit 运行/测试私有(private)(非测试)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745409/

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