Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito无法使用可选的.of模拟类_Java_Unit Testing_Mocking_Mockito - Fatal编程技术网

Java Mockito无法使用可选的.of模拟类

Java Mockito无法使用可选的.of模拟类,java,unit-testing,mocking,mockito,Java,Unit Testing,Mocking,Mockito,我有一个包含以下行的类 private static final Optional<Integer> DEFAULT_RETRY_COUNT = Optional.of(AppConfig.findInteger("abc")); private static final Optional DEFAULT\u RETRY\u COUNT=Optional.of(AppConfig.findInteger(“abc”); Mockito无法模拟该类。无法初始化该类。请帮助您不能用M

我有一个包含以下行的类

private static final Optional<Integer> DEFAULT_RETRY_COUNT = Optional.of(AppConfig.findInteger("abc"));
private static final Optional DEFAULT\u RETRY\u COUNT=Optional.of(AppConfig.findInteger(“abc”);

Mockito无法模拟该类。无法初始化该类。请帮助

您不能用Mockito模拟静态方法。遗憾的是,您可以使用
PowerMockito
进行模拟。您的自定义类是
AppConfig
类吗?您可以以非静态方式访问它的
findInteger
方法,然后可以模拟它。谢谢您的帮助。问题是静态可选的。有谁能帮我在模拟时使用Optional.of的返回类型吗?我已经告诉过你一种方法,你不应该模拟
Optional.of
,除了你自己的类之外,永远不要模拟任何东西(尽可能多)->make
AppConfig.findInteger
非静态,这是你自己的类吗?如果你发现一些东西很难测试,你的代码很可能有设计问题。在您的情况下,这是依赖注入的拒绝。由于
DEFAULT\u RETRY\u COUNT
的值显然是在运行时(而不是在编译时)确定的,因此它不应该是常量,而是类的(最终)成员及其值应该通过构造函数传入。您不能用Mockito模拟静态方法,您可以使用
PowerMockito
实现这一点。
AppConfig
class是您的自定义类吗?您可以以非静态方式访问它的
findInteger
方法,然后可以模拟它。谢谢您的帮助。问题是静态可选的。有谁能帮我在模拟时使用Optional.of的返回类型吗?我已经告诉过你一种方法,你不应该模拟
Optional.of
,除了你自己的类之外,永远不要模拟任何东西(尽可能多)->make
AppConfig.findInteger
非静态,这是你自己的类吗?如果你发现一些东西很难测试,你的代码很可能有设计问题。在您的情况下,这是依赖注入的拒绝。由于
DEFAULT\u RETRY\u COUNT
的值显然是在运行时(而不是在编译时)确定的,因此它不应该是常量,而是类的(最终)成员及其值应该通过构造函数传入。