gpt4 book ai didi

java - 如何在java中编写简单的文本测试用例

转载 作者:行者123 更新时间:2023-11-29 06:05:39 24 4
gpt4 key购买 nike

您好,我正在编写我的第一个 Java 应用程序,我有一些测试用例(*.tc 文件),我想通过此脚本直接访问该应用程序:

for f in `ls *.tc`; do
echo "Current Testcase: $f"
x=${f%.*}
java Main < $x.tc > $x.out

if diff "$x.out" "$x.should"; then
echo "passed testcase $f"
let PASSED=PASSED+1
else
echo "failed testcase $f"
let FAILED=FAILED+1
fi
done

问题是我不太明白为什么一旦 tc 文件 包含多行应用程序就会崩溃。例如:quit.tc 包含

quit

就像我手动输入“退出”时一样工作,因此测试用例通过了。然而,当我写另一个 tc: quit2.tc 其中包含

lala
test
quit

应用程序在第一个命令后退出(因为 readString 函数之后似乎返回 null)。下面是负责读取的函数:

public String readString(){

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String answer = null;

try {
answer = br.readLine();
return answer;
}
catch(IOException ioe) {
System.out.println("IO Error");
}
return answer;
}

当我重定向到应用程序时,我不知道为什么或何时此函数返回 null,这似乎是问题所在。你能帮忙让 tc 脚本工作吗?谢谢

最佳答案

如果您是 java 的新手,并且您仍在塑造自己的风格和做事方式,我将向您推荐 2 个技巧:

1) 使用 Scanner阅读您的输入。使用nextLine() Scanner 对象的方法可能就是您要查找的内容。

2) 设计您的代码,使其可通过 JUnit 进行测试.

仍然,在您的 readString() 方法中,从 try block 中删除 return answer;

更新:尝试在您的函数中实现以下内容:

a) 当扫描仪实例 hasNextLine() 为真时 ->

b) 调用扫描器实例 nextLine() 方法 ->

c) 解析该行,并查看它是否等于 'quit' ->

d) 实现相应的逻辑 if 情况。

关于java - 如何在java中编写简单的文本测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com