gpt4 book ai didi

java - 如何将输入发送到 Junit 中的 System.console.readLine(...)?

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:02 24 4
gpt4 key购买 nike

我有一个要测试的主要方法。

我只是想知道如何通过 console.readLine(...) 和 console.readLine(...) 对我的 Junit 测试的期望 - 无需重构 main(...) - 我正在使用JMockit 是否可以在这里使用 - 即模拟 System.console()?。

class MyClass {
public static void main(String[] args) {
Console console = System.console();

String username = console.readLine("Enter your username: ");
char[] newPassword = console.readPassword("Enter your new password: ");

...
}
}

class MyJunitTest {
@Test
public void test() {
MyClass.main(null);
// here I'd just like to pass the username and password to the console?
}
}

最佳答案

我使用 JMockit 来模拟 Console 类:

  @Test
public void test(
@Mocked final System systemMock,
@Mocked final Console consoleMock) {
new NonStrictExpectations() {
{
System.console();
result = consoleMock;

consoleMock.readLine(anyString);
result = "aUsername";

consoleMock.readPassword(anyString);
result = "aPassword";
}
};

MyClass.main(null);
}

关于java - 如何将输入发送到 Junit 中的 System.console.readLine(...)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038853/

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