我可以创建一个没有文件系统和网络访问的 junit 环境吗?我想对我们的测试用例执行更严格的规则。
理想情况下,这可以使用 Maven 进行配置并适用于默认测试阶段。
最佳答案
基于这个答案https://stackoverflow.com/a/309427/116509 ,我认为您可以在测试设置上设置一个 SecurityManager
并在拆卸时恢复原始设置。
但是,恕我直言,一些单元测试应该被允许接触文件系统,例如,如果被测试的类实际上创建文件作为其契约(Contract)的一部分。 (您可以使用依赖项注入(inject)来确保在临时目录中创建文件)。同样,使用 HTTP 的类的良好单元测试应该针对 HTTP 端点进行测试。否则你最终只会 mock 一切,你的测试就变得毫无值(value)。我认为默认应该是拒绝访问,然后开发人员需要专门覆盖此类测试的权限。
关于java - JUnit 测试沙箱没有网络和文件访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998376/