如何在java中对用户输入进行单元测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在java中对用户输入进行单元测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1826字,纯文字阅读大概需要3分钟。
内容图文
我试图了解如何测试用户的输入(请注意我不是在尝试模拟测试,而是测试实际用户的输入)
目前正如您在我的程序中看到的那样,我已经对我的测试用例的值进行了硬编码,并且它正在通过所有测试但是我如何获得用户的输入并进行测试.
有没有办法在我的构造函数中调用System.in并在测试类中创建MyClass1实例时传递它?
请尽可能给我一些示例代码,以便我能更好地理解.
如果我有这样的接口
public interface IMyClass{
public int getvalue1();
public int getvalue2();
public int getvalue3();
}
然后接口实现
public class MyClass1 implements MyClass{
private int _value1 = 0;
private int _value2 = 0;
private int _value3 = 0;
public MyClass1(int number1, int number2, int number3)
{
_value1 = number1;
_value2 = number2;
_value3 = number3;
}
public void setLength1(int value1)
{
_value1 = value1;
}
public void setLength2(int length2)
{
_value2 = value2;
}
public void setLength3(int length3)
{
_value3 = value3;
}
public int getValue1()
{
return _value1;
}
public int getValue2()
{
return _value2;
}
public int getValue3()
{
return _value3;
}
}
最后是一个测试类:
public class ClasTest extends TestCase {
public void testNumbers()
{
MyClass1 numbers= new MyClass1(1,2,3);
assertThat(numbers.getValue1(),is(not(numbers.getValue2())));
}
}
谢谢你,我感谢任何帮助.
解决方法:
使用System.setIn(new InputSteam());然后写入传入System.in的输入流
见:JUnit: How to simulate System.in testing?
单输入
String data = "Users Input";
System.setIn(new ByteArrayInputStream(data.getBytes()));
Scanner scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());
结果
Users Input
多输入
String data = "Users Input" +
"\nA second line of user input.";
System.setIn(new ByteArrayInputStream(data.getBytes()));
Scanner scanner = new Scanner(System.in);
System.out.println("Line 1: " + scanner.nextLine());
System.out.println("Line 2: " + scanner.nextLine());
结果
Line 1: Users Input
Line 2: A second line of user input.
内容总结
以上是互联网集市为您收集整理的如何在java中对用户输入进行单元测试全部内容,希望文章能够帮你解决如何在java中对用户输入进行单元测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。