【问题标题】:Test looking for enum class inside src/main rather than src/test测试在 src/main 而不是 src/test 中寻找枚举类
【发布时间】:2022-01-05 16:43:43
【问题描述】:

我对 src/test 和 src/main 目录之间的类的可见性有点困惑。我在两个包下都创建了一个枚举,但是在测试文件夹下有一个额外的案例,以允许我测试负面情况。但是,IntelliJ 给了我一个错误,就好像在主文件夹中的枚举下寻找那个额外的情况一样(测试编译并通过)。同样,当我检查主文件夹中枚举的用法时,它还会显示测试目录。不知道如何指定我想使用一个而不是另一个,因为我想象来自 src/test 的那个将优先于 src/main 对于同一 src/test 目录下的代码?

非常感谢。

更新

调用方法不接受将枚举重命名为不同的名称。

【问题讨论】:

  • 如果设置正确主类看不到测试类
  • 测试用例应该测试什么?用这个无效的客户端调用 oauth 管理器是不可能发生的,这几乎就是 enum 的用途。唯一合理的测试用例是用null 调用它。
  • 是的,我同意。用例不太可能发生,并且这个测试主要是为了覆盖而添加的,因为我们的代码有一个开关,会为默认情况抛出异常。现在,随着对 java 17 的更新,这已被删除。但是,我仍然不确定为什么 IntelliJ 没有在正确的包中找到该类。可能是错误或奇怪的行为,不确定。

标签: java spring-boot maven intellij-idea intellij-14


【解决方案1】:

在您的导入中,它可能首先导入了 Main 类,并试图在该类而不是其他类中找到额外的添加。您可以手动将测试类添加到您的导入中(不推荐),或者,我会做的是更改测试类的名称以在末尾添加 Test(我为所有测试类执行此操作以防止这种问题)。所以在测试中,如果你想调用该类的不同输入,你可以调用ClientTest.ANY_OTHER

【讨论】:

  • 感谢您的回答。我添加了一个屏幕截图,显示了当它们命名不同时会发生什么。
猜你喜欢
  • 1970-01-01
  • 2011-02-24
  • 2013-09-10
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 2016-11-19
  • 2012-02-17
相关资源
最近更新 更多