2015-10-13 68 views
3

我们的Spring webapp实现了很多自动装配的接口。一个接口实现中的一些方法做了很多工作。该方法本身有一个公共入口点,大部分逻辑被抽象为许多私有方法。由于需要进行大量测试,因此单元和集成测试非常笨重。在编写集成测试方面,我正在考虑一种测试Autowire实现而不是接口的模式,将这些私有方法的范围更改为公开,但不会将其暴露给拥有的接口。Spring单元测试:自动直接实现接口的实现?

这将允许单元测试这些子例程,同时保持合同清除了许多方法,没有人会在服务范围之外使用它们。

这是一个已知的模式?这种方法有什么缺点?

+2

这是我的理解,它实际上更有利于测试服务实现,而不仅仅是接口。一种方法是在单元测试中使用实现作为参数,这样你只关心合同。由于单元测试不需要涵盖所有这些通常应该足够。但是,如果您还想测试合同之外的东西,我不确定是否指定了标准方法。但是请继续测试实现。 –

+0

谢谢,如果你想记录这个答案,我会给它检查 – IcedDante

回答

0

我的理解是,测试服务实现而不仅仅是接口更有益。

这样做的一种方法是将实现用作单元测试的参数,这样您只关心合同。

由于单元测试不需要覆盖所有这些通常应该足够的东西。

但是,如果您还想测试合同之外的东西,我不确定是否指定了标准方法。但是请继续测试实现。