在Java中的测试类中要测试的类的实例化

时间:2019-06-28 20:02:33

标签: java spring unit-testing junit dependency-injection

在测试类中获取要测试的类的实例的最佳实践是什么?

手动实例化是否更好?
ClassToBeTested classToBeTested = new ClassToBeTested();

测试类内部

OR

从Spring上下文中获取它,就像这样:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest {

  @Autowired
  MyService service;
...

}

2 个答案:

答案 0 :(得分:0)

编程中有一条简单的规则可以指导此类问题:

您不做某事是因为可以,但是因为这样做很有意义

含义:您始终努力编写能够解决问题的最简单,最简单的代码。

所以什么时候

ClassToBeTested classToBeTested = new ClassToBeTested();

足够用于您的测试用例,并为您提供编写一个不错的测试所需的一切,然后使用它。

如果您需要从基于注释的DI方法中获得“轻松”的东西,请然后使用该方法。

话虽如此,也有约定。当大多数程序员要做的“典型”事情是使用注释方法时,那就是您应该使用的方法。

答案 1 :(得分:0)

更好地尝试使用自动布线,使其与更干净,测试更友好的代码以及将来的更改保持一致。

将来使用“ new”可能会出现问题,但自动接线可能会为您节省