这是我写的功能:
private String getPatternFromLogFile() {
final File dir = new File(".");
try {
String fileContents = readFile(dir.getCanonicalPath()
+ "\\sshxcute.log");
Pattern patternDefinition = Pattern.compile(
".*Start to run command(.*)Connection channel closed",
Pattern.DOTALL);
Matcher inputPattern = patternDefinition.matcher(fileContents);
if (inputPattern.find()) {
return inputPattern.group(1);
}
} catch (IOException e) {
LOGGER.log(Level.DEBUG, e.getMessage());
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取文件"sshxcute.log"的内容.
readFile()是这个类本身的一个函数.
我想编写一个测试用例,它进入if块内并返回我想要的任何内容,以便我可以断言它.
这是正确的方法吗?
有人可以帮我写JUnit吗?我是JUnit的新手,任何帮助都会很棒.
谢谢.
您的方法正在做一些事情,这使得难以可靠地进行单元测试.它正在读取文件,然后应用正则表达式.
我或许会把它分开.创建一个读取文件的类,并创建一个行数组,一个流等.然后创建一个读取此数组,流等的组件.在该类中执行正则表达式的工作.
这样,您可以轻松地针对固定数据测试您的正则表达式组件,而不是依赖于文件的内容(我注意到您上面的路径是硬编码的 - 这会让生活变得更加困难).因为您已经从文件读取组件中拆分了正则表达式组件,您可以轻松捕获其输出(对于许多不同的场景 - 而不仅仅是您的一个示例文件提供的场景)
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |