使用JUnit在标准输出上测试某些复杂String的最佳方法是什么?
我正在使用JUnit对Java程序进行一些测试。我想测试一些在标准输出中显示复杂String的方法。
例如,我有一个显示的方法:
Index Marque Modèle Pays Vente
1 Renault Clio France 12000
2 Peugeot 208 France 9900
因此,有一些\t
和\n
,一些空格和很多文本。我已经进行了此测试(可以正常工作),但似乎不是一个好习惯:
String s = System.getProperty("line.separator");
assertEquals("Index\tMarque\tModèle\tPays\tVente\t"+s+"1\tRenault\tClio\tFrance\t12000\t"+s+"2\tPeugeot\t208\tFrance\t9900\t"+s, outContent.toString());
这看起来很麻烦,很费力,但是可以,但是也许有更好的方法。
答案 0 :(得分:0)
在编写单元测试时,每种测试方法都应仅在主题单元上验证单一期望。
在我看来,您的复杂输出具有多个这样的单个期望:
\t
字符分隔创建所有这些测试方法可能看起来需要很多工作,但请考虑以下问题: