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