Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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)_Java_Spring_Unit Testing_Autowired - Fatal编程技术网

如何对始终自动连接的接口进行单元测试(Java)

如何对始终自动连接的接口进行单元测试(Java),java,spring,unit-testing,autowired,Java,Spring,Unit Testing,Autowired,所以我有一个接口,我们称它为X 因此,在常规代码中,我有: public class doStuff() { @Autowired private X x; public stuff() { x.doYourThing(); } } 我不知道如何测试这个 如果我尝试: public class XTest() { @Autowired private X x; public void test(){ string val = x.FillUpVal(); assertTr

所以我有一个接口,我们称它为X

因此,在常规代码中,我有:

public class doStuff()
{
@Autowired
private X x;

public stuff()
{
x.doYourThing();
}
}
我不知道如何测试这个

如果我尝试:

public class XTest()
{
  @Autowired
  private X x;
  public void test(){
  string val = x.FillUpVal();
  assertTrue("It didn't work",val=="hi");
  }

}

我将x设为null,因此它立即抛出NullPointerException并使测试失败。我正在寻找一些关于正确方法的指导。

事实上,您可以@Autowire一个模拟对象。我推荐Mockito框架。 更多信息和示例:

有关模拟的更多信息:

在面向对象编程中,模拟对象是模拟对象 以受控方式模拟真实对象的行为。A. 程序员通常创建一个模拟对象来测试 其他一些对象,与汽车设计师使用 碰撞试验假人,用于模拟人体在碰撞过程中的动态行为 车辆碰撞


需要更多关于您想要测试什么的说明:1)当
doStuff()
以特定方式运行时(使用模拟)如何运行,或2)当与运行时使用的真实X连接时
doStuff()
如何运行(使用Spring的测试上下文库)