理论场景:
假设您有一个具有多个接口的核心模块和一些使用这些接口的通用实现,但不要继承这些接口以及从这些接口继承的多个模块。
这样的东西:
核心模块
( InterfaceA )
( InterfaceB )
呃-.
( InterfaceZ )
伊波尔
/.=‘2’>- GenericImplementationA
/.=‘2’>- GenericImplementationB
ModuleA
( SpecificImplementationOfInterfaceA )
( SpecificImplementationOfInterfaceB )
呃-.
( SpecificImplementationOfInterfaceZ )
..。
ModuleZ
( OtherSpecificImplementationOfInterfaceA )
( OtherSpecificImplementationOfInterfaceB )
呃-.
( OtherSpecificImplementationOfInterfaceZ )
我现在的问题是,编写“泛型”测试的最佳方式是什么?这些测试使用接口,但对每个模块都使用特定的实现。此外,我想在核心模块中为这些泛型类编写测试,但是我没有在这些类中使用的接口的实现。
我想出的一些可能的解决办法是:
解决方案A的缺点是,您需要大量的冗余类,这些类只继承泛型测试并传递特定的实现。
这个案例有什么好的实践范例吗?
发布于 2018-12-10 08:34:28
单元测试的主要目的是
当然,我们不应该对单元测试代码的质量掉以轻心,但是单元测试意味着意味着要针对相应的生产类进行量身定制/紧密定制。
换句话说:当A有一些功能X时,ATest应该测试X。当您有一些B extends A时,您想要单元测试B有“在A之上”的所有东西。
从这个角度来看,你更倾向于第二个选择。您知道,当您的一个特殊模块的测试失败时,您希望尽快处理这个问题。您可以做而不是,首先跳到某个基本测试类,读取与子类中的失败无关的100行代码。
换句话说:测试类应该尽可能自我包含,对于使用继承来避免代码复制非常谨慎.
https://stackoverflow.com/questions/53701628
复制相似问题