首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试不同maven模块中的多个实现?

测试不同maven模块中的多个实现?
EN

Stack Overflow用户
提问于 2018-12-10 08:03:40
回答 1查看 110关注 0票数 1

理论场景:

假设您有一个具有多个接口的核心模块和一些使用这些接口的通用实现,但不要继承这些接口以及从这些接口继承的多个模块。

这样的东西:

核心模块

( InterfaceA )

( InterfaceB )

呃-.

( InterfaceZ )

伊波尔

/.=‘2’>- GenericImplementationA

/.=‘2’>- GenericImplementationB

ModuleA

( SpecificImplementationOfInterfaceA )

( SpecificImplementationOfInterfaceB )

呃-.

( SpecificImplementationOfInterfaceZ )

..。

ModuleZ

( OtherSpecificImplementationOfInterfaceA )

( OtherSpecificImplementationOfInterfaceB )

呃-.

( OtherSpecificImplementationOfInterfaceZ )

我现在的问题是,编写“泛型”测试的最佳方式是什么?这些测试使用接口,但对每个模块都使用特定的实现。此外,我想在核心模块中为这些泛型类编写测试,但是我没有在这些类中使用的接口的实现。

我想出的一些可能的解决办法是:

  • (A)在核心模块中编写通用测试,并为每个模块和每个具体实现创建一个继承于泛型测试并传递特定实现的测试类。
  • (B)创建一个继承核心模块和每个特定模块的新测试模块,在那里编写通用测试并使用参数化junit测试

解决方案A的缺点是,您需要大量的冗余类,这些类只继承泛型测试并传递特定的实现。

这个案例有什么好的实践范例吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-10 08:34:28

单元测试的主要目的是

  • 测试被测试单元的所有方面
  • 帮助您稍后快速识别/调试问题。

当然,我们不应该对单元测试代码的质量掉以轻心,但是单元测试意味着意味着要针对相应的生产类进行量身定制/紧密定制。

换句话说:当A有一些功能X时,ATest应该测试X。当您有一些B extends A时,您想要单元测试B有“在A之上”的所有东西。

从这个角度来看,你更倾向于第二个选择。您知道,当您的一个特殊模块的测试失败时,您希望尽快处理这个问题。您可以做而不是,首先跳到某个基本测试类,读取与子类中的失败无关的100行代码。

换句话说:测试类应该尽可能自我包含,对于使用继承来避免代码复制非常谨慎.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53701628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档