Java 如何使用注释测试依赖项注入?
在Spring框架或JavaEE中,有基于注释的依赖注入 通常你会这么做Java 如何使用注释测试依赖项注入?,java,spring,dependency-injection,Java,Spring,Dependency Injection,在Spring框架或JavaEE中,有基于注释的依赖注入 通常你会这么做 class X { Y var; public X(Y var) { this.var = var } } 这很容易测试和模拟。您只需为测试实例化类Y 但是这个怎么样 class X { @Inject or @Autowired Y var; public X( ) { } } 基于注释的依赖项注入怎么样。 您的问题与硬编码安
class X
{
Y var;
public X(Y var)
{
this.var = var
}
}
这很容易测试和模拟。您只需为测试实例化类Y
但是这个怎么样
class X
{
@Inject or @Autowired
Y var;
public X( )
{
}
}
基于注释的依赖项注入怎么样。
您的问题与硬编码安装相同。
我不可能像在第一个代码示例中那样注入模拟对象。我如何测试它
我不可能像在计算机中那样注入模拟对象
第一个代码示例
为什么呢
@Component
class X {
Y var;
@Autowired
public X(Y var)
{
this.var = var
}
@Component
class Y {
}
然后
@RunWith(SpringRunner.class)
public class ApiControllerTest {
@Autowired
private X x;
@Configuration
static class Config {
@MockBean
private Y y;
}
}
现在唯一的办法就是反思。据我所知,使用诸如Mockito之类的其他框架是指如何在没有spring和注释的情况下进行依赖项注入?因为你说的是带有注释的依赖注入。这些注释来自spring本身,就像您所拥有的
@Autowired
。。。通过重构代码使其易于测试?这正是为什么构造函数注入是推荐的做法的原因