Scanner在idea中测试类的用法
时间: 2023-08-06 18:03:57 浏览: 225
Scanner类的用法
在 IDEA 中,我们可以在单元测试中使用 Scanner,但是需要做一些额外的工作来模拟输入。下面是一个简单的示例:
```java
import org.junit.Test;
import java.io.ByteArrayInputStream;
import java.util.Scanner;
import static org.junit.Assert.assertEquals;
public class ScannerTest {
@Test
public void testScanner() {
// 模拟输入
String input = "hello world";
ByteArrayInputStream in = new ByteArrayInputStream(input.getBytes());
System.setIn(in);
// 使用 Scanner 读取输入
Scanner scanner = new Scanner(System.in);
String scannedInput = scanner.nextLine();
// 断言读取的输入与模拟的输入相同
assertEquals(input, scannedInput);
}
}
```
在这个例子中,我们首先使用 ByteArrayInputStream 创建一个模拟输入流,并使用 System.setIn 方法将其设置为标准输入流。然后,我们创建一个 Scanner 对象来读取输入,并使用 assertEquals 方法来断言读取的输入与模拟的输入相同。
需要注意的是,在测试完成后,需要使用 System.setIn(null) 将标准输入流设置回原始状态,以免影响其他测试或应用程序的运行。
阅读全文