包装单元类的单元测试

用户名

我可以编写一些单元测试并进行重构。我们正在使用Hybris。您经常可以看到的是Trainwrecks。例如:cmsSiteService.getCurrentSite().getSlaveSalesOrganization()等等。

现在编写单元测试并模拟响应,在这种情况下,我将首先模拟CurrentSite并进行声明doReturn(currentSite).when(cmsSiteService.getCurrentSite),然后再进行doReturn(slaveSalesOrganization).when(currentSite).getSlaveSalesOrganization()

该示例相当简短,但是使用cmsSiteService可以在整个项目中进行。由于cmsSiteService是第三方Hybris类,因此我认为编写一个包装类来继承CMSSiteService-Class的所有内容将是一件好事。在那里,我可以编写一个方法getSlaveSalesOrganizationFromCurrentSite(CMSSiteService cmsSiteService),在这里我可以调用上面的所有方法。

是推荐还是在设计上有更好的解决方案?

罗莎

听起来您在正确的轨道上。您正在做的是对代码进行重构,以更好地遵守Demeter律,也被称为“最少知识原理”。像您所说的那样,通过对象链进行挖掘是一种反模式,这正是您遇到的原因:当对象紧密耦合时,很难对其进行修改和测试。

理想情况下,如果允许您修改该代码,则可以在类中添加一个getSlaveSalesOrganizationFromCurrentSite方法CMSSiteService我认为创建包装器来简化丑陋的界面是第二种不错的选择。那将是Adapter模式的实现这是防止您的代码紧密耦合到(别人的)糟糕代码的好方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章