在TDD(测试驱动开发)开发过程中,如何处理测试数据? 假设一个场景,解析一个日志文件以获取所需的列。对于强大的测试,我如何准备测试数据?我是否正确地将这些文件放在测试类文件中?
答案 0 :(得分:15)
src
main
java <-- java source files of main application
resources <-- resource files for application (logger config, etc)
test
java <-- test suites and classes
resources <-- additional resources for testing
如果你使用maven进行构建,你需要将测试资源放在正确的文件夹中,如果你的建筑有不同的东西,你可能想要使用这个结构,因为它不仅仅是一个maven惯例,我的意见它接近'最佳实践'。
答案 1 :(得分:2)
在测试中对它们进行硬编码,使它们接近使用它们的测试,使测试更具可读性。
从真实的日志文件创建测试数据。写下要写的测试列表,逐个处理,一旦通过就打勾。
答案 2 :(得分:2)
另一种选择是模拟您的数据,消除对外部源的依赖。这样,无需多个外部测试数据实例即可轻松测试各种数据条件。然后我通常使用完整的集成测试进行轻量级烟雾测试。
答案 3 :(得分:1)
getClass().getClassLoader().getResourceAsStream("....xml");
测试内部为我工作。但是
getClass().getResourceAsStream("....xml");
没用。 不知道为什么,但也许它可以帮助其他人。
答案 4 :(得分:0)
当我的测试数据必须是外部文件时 - 我试图避免这种情况,但不能总是 - 我将它放入与我的项目相同级别的保留测试数据目录中,并使用{{1}阅读它。 test-data目录不是必需的,只是方便。但尽量避免需要这样做;正如@philippe指出的那样,在测试中将值硬编码几乎总是更好,就在你可以看到的地方。