在jUnit中计算assertEquals()方法中expected_value的最佳方法是什么

pri*_*ime 5 java testing junit unit-testing

我正在使用该assertEquals()方法jUnit来测试某个值是否与代码生成的实际值相等.

/*
  calculating the actual_value
*/
int expected_value = 1000; // rows of the set of files, manually calculated
assertEquals(expected_value, actual_value);
Run Code Online (Sandbox Code Playgroud)

在标准和手续的情况下,我想知道如果我这样做,那将是一个问题.

/*
  calculating the actual_value
*/
int expected_value = getRelevantLinesOfFiles(set of files); // rows of the set of files
assertEquals(expected_value, actual_value);
Run Code Online (Sandbox Code Playgroud)

因为几乎不可能总是手动找到那种变量,所以我写了一个方法来读取和计算这些文件中的相关行.

我担心的是我在assertEquals测试中使用了一种方法.但该getRelevantLinesOfFiles()方法未经过测试.如果我要测试它,那么我必须再次手动读取文件.所以它一次又一次有点相同.

这是一个好习惯吗?或者进行这类测试的最佳方法是什么?

小智 -2

从代码中删除“Magic Numbers”(又名 1000)始终是一个好习惯。就像 talex 所说的那样,getRelevantLivesOfFiles()在足够小的文件上测试该方法。然后您就可以放心地使用它来测试代码的其他部分。