如何测试索引越界错误? [复制]
Posted
技术标签:
【中文标题】如何测试索引越界错误? [复制]【英文标题】:How to test for index out of bounds error? [duplicate] 【发布时间】:2014-10-31 01:09:37 【问题描述】:我编写了以下方法,该方法从具有开始和结束索引的字符串中获取子字符串。对于会超出范围的索引,如何在 Junit 中编写测试用例?例如,如果字符串是香蕉,并且方法作为 getSubstring(3,12) 运行,则该方法将抛出越界错误。如何编写一个在显示此错误时将通过的测试用例?
public String getSubstring(int start, int end)
sub = MyString.str.substring(start, end);
return sub;
@Test
public void testgetSubstring()
MyString test = new MyString();
String result = test.getSubstring(3,12);
【问题讨论】:
使用字符串长度函数 【参考方案1】:在 JUnit 中有很多方法可以做到这一点,但最好的方法是使用 ExpectedException
功能。您设置了一个@Rule
,指定您的测试可能会引发异常,并且您可以设置对该异常的预期 - 它将具有什么类型、什么消息等等。
在你的测试类的顶部,你想要类似的东西
@Rule public ExpectedException exceptionRule = ExpectedException.none();
然后在应该抛出异常的代码行之前,你可以写类似
exceptionRule.expect(MyException.class);
那么,如果抛出了正确的异常,你的测试就会成功;但是如果它到达末尾而没有抛出异常,它将失败。
请参阅Javadoc,了解您可以在ExpectedException
规则中设置的更多期望。
【讨论】:
以上是关于如何测试索引越界错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章