gpt4 book ai didi

java - 单独测试单一方法?

转载 作者:行者123 更新时间:2023-12-02 11:28:48 26 4
gpt4 key购买 nike

我有一个应用程序,它接受用户输入,解析它然后继续运行。我想编写一些单元测试以确保输入代码正常工作。现在的问题是执行流程。在我的测试方法中,我将一些输入写入输入流,然后我的程序读取它并继续执行某些操作。现在我想在给出输入之后但在程序继续执行之前测试输入。让我演示一下:

private void getInput(){
System.out.println("welcome, please enter a number);
getInput();
System.out.println("Thank you, now starting...")
startSimulation();
}

现在在我的测试方法中,我本质上向流中输入 10,然后我想断言输出流包含“谢谢,现在开始...”。我想编程在这里停止执行,这样它就不会继续。这可能吗?

最佳答案

你的代码很难测试。您应该将其分解为方法。

public class YourClass {

public String getInput() {
//from standard input or whatever
}

public String getOutputFromInput(String input) {
//do your logic here
if ("10".equals(input)) {
return "Thank you, now starting...";
}
//else... or whatever
}

public void printOutput(String output) {
System.out.println(output);
}

}

现在,您可以测试您的方法:

@Test
public void theTest() {
String simulatedInput = "10";
YourClass classUnderTest = new YourClass();
assertEquals("Thank you, now starting...", classUnderTest.getOutputFromInput(simulatedInput));
}

在这里,您正在测试您的登录。您不必测试 System.out.pritln;我保证,它有效。您必须将代码设计为在其他组件(在本例中为输入和输出方法)之间松散耦合。

这段代码并不完美。这只是为了举例。

关于java - 单独测试单一方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49434599/

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