我创建了一个单元测试,我在其中动态创建然后解析 xml。当我完成文件时,我将其删除。我暂时将文件存储在我的项目中创建的资源文件夹中,但我想知道如果我部署到 tomcat 服务器,这仍然会通过。我现在正在使用 getRealPath () 并且它有效。我以后绝对不需要这些文件,这就是我删除它们的原因。
我读过 getRealPath () 不可移植,不应该真正使用,但这就是为什么我要问我的目的,可以吗?
我不能发布代码,因为我在工作,但我会尝试解释一下:
我使用 ServletContextHolder.servletcontext.getRealPath () 并在末尾添加资源/测试文件..这将我带到我的项目路径 (project/out/test/resources/testfiles)
我使用 stringwriter、filewriter、markupbuilder 创建一个 xml 文件..
我保存这个文件,读取它并在测试后删除它。它可以在 Windows 上运行,但我需要知道它是否可以在 tomcat 上运行,如果它被部署并且单元测试自动运行......它是否能够做这一切..
抱歉格式不佳,我的手机不是写这篇文章的最佳方式
最佳答案
理想的解决方案是根本不使用文件。但这实际上取决于您的 XML 解析器用于其输入的类。例如,如果解析器接受 InputStream , 你可以使用 StringBufferInputStream构建您的 XML 内容。然后解析器就可以像使用文件一样使用该流。 OOP 接口(interface)真是太棒了:)
关于unit-testing - 使用单元测试读取然后删除 xml 文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32055454/