Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java集测试_Java_Junit_Set - Fatal编程技术网

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 } 公共国家{ 私有集城市

我有一个Java对象,它包含另一个作为集合的Java对象。例如:

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”?另请参见