繁体   English   中英

单元测试外观类

[英]Unit testing a facade class

我有一个Facade类,它实现以下方法: getTotalNumOfItems(Query query) 该外观位于其他两个实现相同方法的服务类的前面。 根据query参数的类型,Facade决定是否委托给服务之一或另一个。

我的难题是如何为立面编写单元测试,而无需知道项目数是如何得出的。 否则,它将看起来像一个集成测试,而不是一个单元测试。

我已经使用Mockito提供了这两个服务的就地模拟版本。 但是,当我为此编写一个单元测试时,我唯一可以测试的是“验证外观是否返回一个数字,等于一个模拟返回的数字(取决于查询类型)”。 似乎没有一种方法可以比这更加不可知的方式来测试立面。

我在这里做错什么了吗? 我应该担心吗? 我猜想,立面的性质就是只能通过了解其委派的类来验证其效率。 当然,我确保在两个服务中都为相同的方法编写单元测试。

正如您已经说过的那样,Facade的职责是决定委派给哪个服务。 这就是您需要测试的内容。 服务的返回值与测试无关。 因此,对于您的模拟,只需确保在一个测试用例中调用了其中一个,而从未调用过另一个。 第二个测试用例应该反过来进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM