如何在java中正确存储JUnit Backbox测试/blackbox测试的输入数据?

如何在java中正确存储JUnit Backbox测试/blackbox测试的输入数据?,java,junit,Java,Junit,我的任务是重构一个不存在测试的给定java cli应用程序。程序将xml打印到标准输出,需要8个参数,其中一些参数有时包含xml。我需要验证大约200个输入。你如何正确地做到这一点 我想我会用JUnit实现自动化,调用main并捕获StdOut。但是由于它总是同一个方法体,所以为每个测试编写一个方法是多余的。我测试了一个运行良好的TestFactory,但现在我想知道应该如何存储所有这些参数,使其具有人机可读性。我创建了一个目录树,对一些测试进行了分组,并为测试创建了一个json文件作为虚拟文件

我的任务是重构一个不存在测试的给定java cli应用程序。程序将xml打印到标准输出,需要8个参数,其中一些参数有时包含xml。我需要验证大约200个输入。你如何正确地做到这一点

我想我会用JUnit实现自动化,调用main并捕获StdOut。但是由于它总是同一个方法体,所以为每个测试编写一个方法是多余的。我测试了一个运行良好的TestFactory,但现在我想知道应该如何存储所有这些参数,使其具有人机可读性。我创建了一个目录树,对一些测试进行了分组,并为测试创建了一个json文件作为虚拟文件。这很管用,但有点乱。压缩这个并不能使添加或更改测试用例变得容易。 我考虑过SQLite,但当时我认为一定有更好的方法。 我希望测试是可扩展的和可维护的,因为有进一步的更改计划,我不会工作。 JUnit是一个很好的选择,还是有更好的黑盒测试框架? 我应该如何正确存储这些数据

谢谢你的帮助

附言: “解决方案”:

我不知道是否有更好的方法,这是我的一个大屁。如果其他人遇到这个陷阱:创建一个类作为数据结构,编写一些方法为每个测试创建对象,并将它们放入列表中,然后通过工厂将其输入,并在一天内调用。 将测试拆分为具有每个方法的公共属性的可管理组。只要它是可搜索和可读的,它就应该是好的。
无需在不更改代码的情况下使其易于管理,因为更改测试的唯一情况是更改代码。

是否可以使用模拟文件进行测试?老实说,我不太理解您的问题,您是否尝试创建测试用例来验证CLI是否仍能覆盖旧的CLI?