将依赖注入与 Apache Commons IO 结合使用

发布于 2024-12-07 05:09:57 字数 149 浏览 1 评论 0原文

我有一个类“a”,它使用 Apache Commons IO 的 FileUtils 类来复制目录。

因为我必须为类“a”编写单元测试,所以我需要能够注入所有依赖项以在测试中模拟它们。

但是如何注入FileUtils类呢?没有接口,所有方法都是抽象的。

I have a class 'a' that uses the FileUtils class of Apache Commons IO to copy a directory.

Because I have to write a unit test for class 'a', I need to be able to inject all dependencies to mock them in the test.

But how to inject the FileUtils class? There is no interface and all methods are abstract.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

山人契 2024-12-14 05:09:57

实用程序类的所有方法都是静态的。你不能嘲笑它们(好吧,你可以,通过字节码操作,但它很难看)。处理这个问题的正确方法是提供对这些实用程序的抽象。例如,实现一个 FileService,将其声明为 bean,然后注入它。然后您可以模拟它的方法。

All methods of the utility classes are static. You can't mock them (well, you can, with bytecode manipulation, but it's ugly). The proper way to handle that is to provide an abstraction over these utilities. For example implement a FileService, which you declare as a bean, and inject it. Then you can mock its methods.

无戏配角 2024-12-14 05:09:57

您可以通过扩展 FileUtils 来创建自己的实现,或者使用模拟库,例如 jMockit 或 < a href="http://easymock.org/" rel="nofollow">EasyMock。

You could create your own implementation of FileUtils by extending it OR use a mocking library like jMockit or EasyMock.

奢欲 2024-12-14 05:09:57

您始终可以将其包装在文件处理层中,并为单元测试创​​建存根实现。

You can always wrap it in a file handling layer and create a stub implementation for your unit tests.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文