您在标签中列出了junit。
Junit的.equals(double,double,accuracy)允许您指定它们与最后一个参数的接近程度。
我刚才读的值并调用.equals每个在测试......
或者是有东西我没有得到这个问题吗?
要解析这些行,您的示例使用空格,但是您说“CSV”(逗号分隔)。如果他们实际上是CSV,你可以使用类似:
String[] line = currentLine.split(",")
在每一行上。那会给你line [0] =“item1”,line [1] =“5.12”,line [2] =“6.12”
之后尝试使用Double解析line [1]和line [2]。顺便说一下,使用assertEquals,而不是assertTrue,更具体的assertEquals将显示您想要的值,以及作为junit结果中错误的一部分得到的值。
我还建议你传入可选的字符串。该检测线是这样的:
assertEquals("item "+file1.line[0]+" values do not match",
Double.parseDouble(file1.line[1]),
Double.parseDouble(file2.line[1]),
0.001)
还有确保您正在阅读每个文件的同一行的整个问题 - 让他们配对的权利。如果他们保证在你的罚款顺序相同,但如果没有你可能想凑起来的名称字段中的第一个文件:
for(String line: file1.readNextLine())
file1hash.put(line.split(",")[0],line)
然后你通过,你可以很容易地做第二个文件迭代:
for(String line2: file2.readNextLine()) {
String line1=file1hash.get(line2.split(",")[0])
确保line1和line2引用同一行。
看到这个问题:http://stackoverflow.com/questions/5686755/junit-assertequals-for-double-values –
这是你的功课? – Ridcully