Java集测试
我有一个Java对象,它包含另一个作为集合的Java对象。例如:Java集测试,java,junit,set,Java,Junit,Set,我有一个Java对象,它包含另一个作为集合的Java对象。例如: Public States { private Set<City> cities = new HashSet(0); // Setters and Getters Here } Public City { private String dummyValue; // Setters and Getters Here } 公共国家{ 私有集城市
Public States {
private Set<City> cities = new HashSet(0);
// Setters and Getters Here
}
Public City {
private String dummyValue;
// Setters and Getters Here
}
公共国家{
私有集城市=新哈希集(0);
//这里有二传手和接球手
}
公共城市{
私有字符串dummyValue;
//这里有二传手和接球手
}
我想测试这个对象,以确保它包含我在方法中修改过的值。例如,我尝试:
Set<City> citySet = citySetInfoFromAnotherMethod;
assert citySet.iterator().next().equals("Dallas");
Set citySet=citySetInfoFromAnotherMethod;
断言citySet.iterator().next().equals(“Dallas”);
但是,我知道这不会起作用,因为集合没有列表那样的顺序
总之,我可以用什么方法测试这个对象,看看在我对它做了一些事情之后,其他方法分配给它的值是否会出现。您可以使用优秀的Hamcrest matchers库来实现您想要的功能(它内置于JUnit的早期版本中,但不适用于以后的版本) 您将需要执行以下操作:
Set<City> citySet = citySetInfoFromAnotherMethod;
assertThat(citySet, contains("Dallas"));
或者(我认为更好)的方法是使用Hamcrest的属性匹配器来提取城市名称。您可以使用优秀的Hamcrest匹配器库来实现您想要的功能(它内置于JUnit的早期版本中,但不适用于以后的版本) 您将需要执行以下操作:
Set<City> citySet = citySetInfoFromAnotherMethod;
assertThat(citySet, contains("Dallas"));
或者(更好的)方法是使用Hamcrest的属性匹配器提取城市名称。是。不要使用集合。有点不清楚,是否要测试集合的第一个元素?或者这个集合包含了什么?您想做什么?我想测试集合中的dummyValue是否等于某个值,例如“Dallas”,因此您想测试集合中是否至少有一个名为“Dallas”的城市。不要使用集合。有点不清楚,是否要测试集合的第一个元素?或者这个集合包含了什么?您想做什么?我想测试集合中的dummyValue是否等于某个值,例如“Dallas”,因此您想测试集合中是否至少有一个城市名为“Dallas”?另请参见