Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.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测试api?我们需要模拟所有的类变量吗?_Java_Unit Testing_Testing_Mockito - Fatal编程技术网

Java 如何使用Mockito测试api?我们需要模拟所有的类变量吗?

Java 如何使用Mockito测试api?我们需要模拟所有的类变量吗?,java,unit-testing,testing,mockito,Java,Unit Testing,Testing,Mockito,我想测试一个API,它使用了如此多的类变量,而且在这个方法中还有如此多的其他方法调用,我不知道如何模拟它们,或者我需要一种不同的方法 请帮助我解决此问题,我提供以下代码: public class LoginController implements Initializable { } 虽然我已经中断了一些方法调用,但仍然不清楚这是否是正确的方法。请帮帮我。提前谢谢。你没有说你的NPE在哪里 我想是在这里: ((OSSDatabase) OSSConfigurationTool.getCont

我想测试一个API,它使用了如此多的类变量,而且在这个方法中还有如此多的其他方法调用,我不知道如何模拟它们,或者我需要一种不同的方法

请帮助我解决此问题,我提供以下代码:

public class LoginController implements Initializable
{

}


虽然我已经中断了一些方法调用,但仍然不清楚这是否是正确的方法。请帮帮我。提前谢谢。

你没有说你的NPE在哪里

我想是在这里:

((OSSDatabase) OSSConfigurationTool.getContext()
当你得到上下文没有

如果是,则必须模拟OSSConfigurationTool.getContext()以返回上下文;)

如果OSSConfigurationTool是一个静态调用,则必须使用它(在junit>4中)

如果需要,也添加这一行

PowerMockito.mockStatic(OSSConfigurationTool.class);
尝试所有这些,让我知道它是否有效


谢谢

把你的困难看作是代码的味道,因为这个类做得太多了。将业务/数据库过程与视图操作过程分离可能会使每一半都更易于测试。您肯定想要分离关注点,这是面向对象编程的目标之一。对。我需要模拟对OSSConfigurationTool.getContext()的调用,然后对其调用存根方法。谢谢,它帮助了我。
((OSSDatabase) OSSConfigurationTool.getContext()
@RunWith(PowerMockRunner.class)
@PrepareForTest( OSSConfigurationTool.class )   
public class LoginControllerTest {
...
PowerMockito.mockStatic(OSSConfigurationTool.class);