作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我编写的函数:
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 "";
}
我正在尝试获取文件“sshxcute.log”的内容。readFile()
是此类本身的一个函数。
我想编写一个测试用例,该测试用例位于 if
block 内并返回我想要的任何内容,以便我可以断言它。
这是正确的方法吗?
有人可以帮我为此编写 JUnit 吗?我是 JUnit 新手,任何帮助都会很棒。
谢谢。
最佳答案
您的方法正在做一些事情,这使得可靠的单元测试变得困难。它正在读取文件,然后应用正则表达式。
我也许会把它分开。创建一个读取文件并创建行数组、流等的类。然后创建一个读取该数组、流等的组件。在该类中执行正则表达式工作。
这样,您就可以轻松地针对 jar 头数据测试您的正则表达式组件,而不是依赖于文件的内容(我注意到您上面的路径是硬编码的 - 这让生活变得更加困难)。由于您已将 regexp 组件与文件读取组件分开,因此您可以轻松捕获其输出(对于许多不同的场景 - 不仅仅是您的一个示例文件提供的场景)
关于java - 如何为使用 java.util.regex 的函数编写 JUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12780762/
我是一名优秀的程序员,十分优秀!