Я написал функциональный тест для проверки добавления товаров в корзину. Чтобы пользователь мог добавлять товары в корзину, ему необходимо войти в систему. Итак, я создал метод для входа в систему пользователя и еще один метод для добавленияItem.Before и после метода addtocart в тесте, я проверяю размер содержимого корзины. Функциональность addtocart работает без каких-либо проблем, когда я запускаю приложение в режиме разработки (я тоже могу проверить БД, которая является postgres, а нев памяти db). addtocart не проходит тестированиеЯ получаю это
BEFORE ADD::usercart=48 has :0 items
addItemsToCart():BEFORE ADD cart=48 has=0
Controller::addItemToCart()::cart id=48 has=1 items
addItemsToCart():AFTER ADD cart=48 has=0
AFTER ADD::usercart=48 has :0 items
Здесь, в методе контроллера, экземпляр корзины (с id = 48) имеет 1 элемент после его сохранения в db. Но в методе теста экземпляр корзины с тем же идентификаторомимеет 0 содержимого.
Я закомментировал метод assertFalse и извлек корзину из db с помощью cartId. Даже тогда корзина с тем же идентификатором имеет 0 содержимого. Я не могу понять, почему это происходит .. может кто-нибудьшнемного света?
// тело метода испытаний .. модифицированное
ShopCart cart = ShopCart.findById(usercart.id);
System.out.println("AFTER ADD::cart="+cart.id+" has :"+cart.cartItems.size()+" items");
assertFalse(cart.cartItems.size()==0);//why does this fail?