在JUnit中使用Hamcrest断言一个列表至少有n个大于x的条目,可以使用Hamcrest的Matchers
类中的hasSize
和everyItem
方法结合使用。
首先,使用Matchers.hasSize(n)
断言列表的大小至少为n。这个方法接受一个整数参数n,表示期望的列表大小。
然后,使用Matchers.everyItem(Matchers.greaterThan(x))
断言列表的每个条目都大于x。这个方法接受一个Matchers.greaterThan(x)
作为参数,表示期望的每个条目都大于x。
下面是一个示例代码:
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
public class ListAssertionTest {
@Test
public void testListAssertion() {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Assert.assertThat(list, Matchers.hasSize(Matchers.greaterThan(3)));
Assert.assertThat(list, Matchers.everyItem(Matchers.greaterThan(2)));
}
}
在上面的示例中,我们断言列表list
至少有4个大于2的条目。如果列表的大小小于4或者存在小于等于2的条目,断言将会失败。
关于Hamcrest的更多用法和其他匹配器,可以参考腾讯云的产品介绍链接地址:Hamcrest - 腾讯云
4试图查看别人的信息 1)通过浏览器,用Peter的账号登录系统。 2)点击Peter,进入查看用户信息。 3)显示Peter的邮件地址Email:peter@126.com。。 4)添加商品进入购物车。 5)查看购物车。 6)点击【生成订单】按键。 7)选择收货地址。 8)点击【下一步】按键。 9)记录当前的url为/view_order/577/。 10)查看所有订单。 11)再往购物车里添加几个商品。 12)在JMeter建立测试片段“试图查看别人的信息”。 13)拷贝暴力破解测试片段下的登录HTTP请求和查看商品列表HTTP请求到试图查看别人的信息测试片段下。 14)修改查看商品列表HTTP请求下的username值为jerry,password为${__digest(SHA-256,654321,,,)}。 15)建立查看用户信息HTTP请求,url值为/user_info/。 16)在查看用户信息HTTP请求下建立响应断言,测试模式中选择字符串和否,响应字符为Email:peter@126.com。 17)建立查看购物车HTTP请求,url值为/view_chart/。 18)在查看购物车HTTP请求下建立响应断言,测试模式中选择字符串和否,响应字符为:移除。 19)建立查看单个订单HTTP请求,url值为/view_order/577/。 20)在查看单个订单HTTP请求下建立响应断言,测试模式中选择字符串和否,响应字符为:生成时间:。 21)建立查看全部订单HTTP请求,url值为/view_all_order/。 22)在查看全部订单HTTP请求下建立响应断言,测试模式中选择字符串和否,响应字符为:删除。 23)在模块控制器中选择试图查看别人的信息,运行测试。 24)根据测试结果判断是否存在安全隐患,在图10中,jerry用户登录系统可以看见peter建立的第577号订单信息,存在安全隐患。
领取专属 10元无门槛券
手把手带您无忧上云