我想测试另一个类(测试类)中的消息方法,但要以独立的方式进行测试,以便测试类调用消息方法并输入行数和实际消息的预定义值。因此,当调用该方法时,在询问行号时在控制台中输入值1,然后在询问消息时,在控制台中输入字符串“ hi,您今天好吗”。下面有一个类的消息方法,以及测试用户输入的测试类的一部分。
所以我的问题是,如何才能使测试类调用message方法(位于另一个类中),并且当该message方法运行时,根据需要将值输入扫描仪,然后该message方法继续运行到最后。
我认为这与输入流有关。但是,由于我试图在另一个类的扫描仪中输入值,所以它不起作用。我已经看到了与模拟扫描仪输入有关的类似问题,但这些问题属于同一班级,并以相同的方法直接与扫描仪对话。我希望这些东西分开,这样,如果删除/删除测试类,则消息方法所在的类仍将像正常情况一样工作。
Click Here To See The Console For The Message Method
SarmanEncryption inputOutput= new SarmanEncryption();
inputOutput.message();
InputStream num = new ByteArrayInputStream(keyTest5.getBytes());
System.setIn(Integer.parseInt(num));
InputStream message = new ByteArrayInputStream(keyTest6.getBytes());
System.setIn(message);
String keyTest5 =“ 1”; 字符串keyTest6 =“ adbh,sdba”;
{{1}}
答案 0 :(得分:0)
请考虑重写代码以使其易于测试。如果要测试消息方法,则可以将输入/输出流传递给该方法。
您还可以在具有被测方法的对象的构造函数中执行此操作(注入对输入/输出流的依赖性)。
在关闭流时要小心。