Java 收藏参考 @测试 public void test\u getAllingRedientscept\u参数\u Valid\u List()引发DatabaseException、ServiceException、DomainException{ System.err.println(this.validShoppingFacade.getAllingElements()); 此.validShoppingFacade.addIngredient(validIngredient); 预期集合=新的ArrayList(this.validShoppingFacade.GetAllingElements()); 此.validShoppingFacade.AddingElement(另一个ValidingElement); System.err.println(this.validShoppingFacade.getAllingElements()); Collection ingredientExceptions=new ArrayList(); ingredientExceptions.add(另一个有效的元素); System.err.println(this.validShoppingFacade.getAllingElements()); System.err.println((列表)validShoppingFacade.getAllingRedientscept(ingredientExceptions)); assertEquals(预期的,(列表)有效的ShoppingFacade.GetAllingRedientSecept(ingredientExceptions)); }
系统错误 `[成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2}] [成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2},成分{name=ingredient1,数量=0.25Kg,id=3},成分{name=ingredient2,数量=0.3L,id=4}] [成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2},成分{name=ingredient1,数量=0.25Kg,id=3},成分{name=ingredient2,数量=0.3L,id=4}] [成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient1,数量=0.25Kg,id=3}]` 你好 很抱歉标题含糊不清,但我不知道该如何重新措辞 问题-问题 目前我收到的信息是: 预期:但是:Java 收藏参考 @测试 public void test\u getAllingRedientscept\u参数\u Valid\u List()引发DatabaseException、ServiceException、DomainException{ System.err.println(this.validShoppingFacade.getAllingElements()); 此.validShoppingFacade.addIngredient(validIngredient); 预期集合=新的ArrayList(this.validShoppingFacade.GetAllingElements()); 此.validShoppingFacade.AddingElement(另一个ValidingElement); System.err.println(this.validShoppingFacade.getAllingElements()); Collection ingredientExceptions=new ArrayList(); ingredientExceptions.add(另一个有效的元素); System.err.println(this.validShoppingFacade.getAllingElements()); System.err.println((列表)validShoppingFacade.getAllingRedientscept(ingredientExceptions)); assertEquals(预期的,(列表)有效的ShoppingFacade.GetAllingRedientSecept(ingredientExceptions)); },java,collections,reference,Java,Collections,Reference,系统错误 `[成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2}] [成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2},成分{name=ingredient1,数量=0.25Kg,id=3},成分{name=ingredient2,数量=0.3L,id=4}] [成分{name=ingredient1,数量=0.25Kg
因此,代码可以正常工作,但我的test子句不能正常工作,据我所知,错误在
Collection expected=new ArrayList(this.validShoppingFacade.getAllingElements())中代码>因为预期列表只是对外观中列表的引用。如果我在facde列表上运行for循环以将它们添加到我的预期列表中,它会起作用,但对于“测试用例”来说,这似乎有点奇怪。问题可能在于(list)validShoppingFacade.getAllingRedientscept(ingredientExceptions)
上次打印的语句应该已打印
[成分{name=ingredient1,数量=0.25Kg,id=1},成分{name=ingredient2,数量=0.3L,id=2},成分{name=ingredient1,数量=0.25Kg,id=3}]
@Test
public void test_getAllIngredientsExcept_Parameter_Valid_List()throws DatabaseException, ServiceException, DomainException{
System.err.println(this.validShoppingFacade.getAllIngredients());
this.validShoppingFacade.addIngredient(validIngredient);
Collection<Ingredient> expected = new ArrayList<Ingredient>(this.validShoppingFacade.getAllIngredients());
this.validShoppingFacade.addIngredient(anotherValidIngredient);
System.err.println(this.validShoppingFacade.getAllIngredients());
Collection<Ingredient> ingredientExceptions = new ArrayList<Ingredient>();
ingredientExceptions.add(anotherValidIngredient);
System.err.println(this.validShoppingFacade.getAllIngredients());
System.err.println((List<Ingredient>)validShoppingFacade.getAllIngredientsExcept(ingredientExceptions));
assertEquals(expected,(List<Ingredient>)validShoppingFacade.getAllIngredientsExcept(ingredientExceptions));
}
System.err.println((列表)validShoppingFacade.getAllingRedientscept(ingredientExceptions));
缺少id=3的对象。您可以发布getAllingRedientSecept()方法实现吗?assertEquals
将调用对象。equals()
,它将查看两个列表是否是相同的指针。也许可以尝试assertTrue(org.apache.commons.collections.CollectionUtils.isEqualCollection(应为,(列表)validShoppingFacade.getAllIngredientsExcept(ingredientExceptions))
Ingrediënt类中的等号仅基于名称,因此它没有显示id=3,因为它具有相同的名称。(既然是用户的错误,我现在该怎么做,回答coorect还是删除该问题?)
System.err.println((List<Ingredient>)validShoppingFacade.getAllIngredientsExcept(ingredientExceptions));