Java 用于文件读取器的jUnit
我得到了一个从txt文件读取并用文件中存在的单词填充列表的方法。 方法是计算并返回最重复的单词。Java 用于文件读取器的jUnit,java,unit-testing,junit,Java,Unit Testing,Junit,我得到了一个从txt文件读取并用文件中存在的单词填充列表的方法。 方法是计算并返回最重复的单词。 如果我想为此写一篇jUnit。鉴于文件经常更改,我应该如何测试该方法的核心性。该文件应该是该方法的参数或该方法类的实例字段。 通过这种方式,您可以通过提供一个文件对方法进行单元测试,您可以掌握该文件中的数据,并知道如何断言这些数据。 例如,使用参数方式: public String findMostRepeatedWork(File file){ ... } 因此,您可以轻松地将其
如果我想为此写一篇jUnit。鉴于文件经常更改,我应该如何测试该方法的核心性。该文件应该是该方法的参数或该方法类的实例字段。
通过这种方式,您可以通过提供一个文件对方法进行单元测试,您可以掌握该文件中的数据,并知道如何断言这些数据。
例如,使用参数方式:
public String findMostRepeatedWork(File file){
...
}
因此,您可以轻松地将其单位化:
@Test
public void findMostRepeatedWork(){
// fixture
File myTestFile = ...;
// action
new MyClassToTest.findMostRepeatedWork(myTestFile);
// assertion
...
}
该文件应该是该方法的参数或该方法类的实例字段。
通过这种方式,您可以通过提供一个文件对方法进行单元测试,您可以掌握该文件中的数据,并知道如何断言这些数据。
例如,使用参数方式:
public String findMostRepeatedWork(File file){
...
}
因此,您可以轻松地将其单位化:
@Test
public void findMostRepeatedWork(){
// fixture
File myTestFile = ...;
// action
new MyClassToTest.findMostRepeatedWork(myTestFile);
// assertion
...
}
Junit不适用于任何获取资源(文件、数据库或网络)的测试。Junit不适用于任何获取资源(文件、数据库或网络)的测试。正如@jaibalaji所写,JUnitTests不应依赖于JVM内存之外的资源 因此,第一步必须是使被测代码(cut)独立于实际文件 我得到了一个从txt文件读取并用文件中存在的单词填充列表的方法。方法是计算并返回最重复的单词 在这句话中,你提到了3项责任:
公共字符串findMostRepeatedWordIn(MyFileReader MyFileReader){
字符串fileContent=myFileReader.readContent();
List wordList=wordListBulder.createwordlistfrom(fileContent);
返回WordCountAnalyzer.findMosterPreatedWordIn(单词列表);
}
这段代码太简单了,不需要进行单元测试,模块测试和/或验收测试将证明这是可行的
现在,要测试的行为在类
WordCountAnalyzer
中,它有一个简单的t“假”输入,这将导致一个确定性的可测试输出。正如@jaibalaji所写,JuintTests不应该依赖于JVM内存之外的资源
因此,第一步必须是使被测代码(cut)独立于实际文件
我得到了一个从txt文件中读取并用文件中存在的单词填充列表的方法。该方法是计算并返回最重复的单词
在这句话中,你提到了3项责任:
公共字符串findMostRepeatedWordIn(MyFileReader MyFileReader){
字符串fileContent=myFileReader.readContent();
List wordList=wordListBulder.createwordlistfrom(fileContent);
返回WordCountAnalyzer.findMosterPreatedWordIn(单词列表);
}
这段代码太简单了,不需要进行单元测试,模块测试和/或验收测试将证明这是可行的
现在,要测试的行为在类
WordCountAnalyzer
中,它有一个简单的t“fake”导致确定性可测试输出的输入。要进行测试,您可能知道重复次数最多的单词出现的次数,如果不能,那么如果文件更改,则很难进行测试。^^^BufferedReader
或InputStream
应该是类依赖项,这样我们就可以创建该接口的模拟,而不需要接触文件系统……我编写了返回最多重复单词的方法。我怎么知道我一开始就写对了呢?@MaorShitrit除非为每个和e编写了UnitTest,否则不会实际代码之前的预期行为(TDD)它应该更进一步:BufferedReader
或InputStream
应该是类依赖项,这样我们就可以创建该接口的模拟,而不需要接触文件系统……我编写了返回大多数重复字的方法。我怎么知道我一开始就写对了?@MaorShitrit除非你注意在实际代码(TDD)之前对每个预期行为进行单元测试