gpt4 book ai didi

java - 对外观类进行单元测试

转载 作者:行者123 更新时间:2023-11-30 06:15:41 24 4
gpt4 key购买 nike

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

我的难题是如何为门面编写单元测试,而测试不必知道项数是如何得出的。否则,它看起来就像是集成测试,而不是单元测试。

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

我是不是做错了什么?我应该感到担心吗?我想,门面的性质使得它的效率只能通过了解它委托(delegate)给的类来验证。当然,我确保在两种服务中为相同的方法编写单元测试。

最佳答案

正如您已经说过的,外观的职责是决定委托(delegate)给哪个服务。这就是你需要测试的。服务的返回值对测试没有意义。因此,对于您的模拟,只需确保在一个测试用例中调用其中一个,而从不调用另一个。第二个测试用例应该以相反的方式测试它。

关于java - 对外观类进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com