Я работаю над модульным тестированием с JUnit. В этом конкретном тестовом примере мы проверяем, пуста ли наша корзина или список, тогда мы должны вернуть цену 0.0. Если в метод проверки calculatePrice передается пустая корзина, он должен вернуть цену в виде двойного значения 0.0.
Я просто не знаю, как это сделать. Я более или менее пытаюсь убедиться, что цена будет 0.0, когда вы проверяете корзину, но я чувствую себя совершенно не в своей тарелке.
public class Basket {
private List<Object> bookList = new ArrayList<Object>();
public List<Object> getBooksInBasket() {
return bookList;
}
}
public class CheckOut {
private double price = 0.0;
public double getCheckOutPrice() {
return price;
}
double calculatePrice(Basket basket) {
Basket basket1 = new Basket();
if (((List<Object>) basket1).size()==0)
return basket.price1=0.0;
return price;
//return null;
}
}
public class CheckOutTest {
@Test
public void test_CalculatePrice_ReturnsDoubleZeroPointZeroWhenPassedAnEmptyBasket() {
//Arrange
Basket basket = new Basket();
CheckOut checkout = new CheckOut();
//Act
checkout.calculatePrice(basket);
//Assert
//assertEquals(0.0,checkout.price);
}
}
@GarimaGupta, скорее всего, нет. Пытаюсь понять, как включить список корзин в банкомат с методом оформления заказа.




I'm more or less trying to ensure that the price is 0.0 when you check the basket but i feel totally off on something
assertEquals(0.0,checkout.price);
Мне это кажется довольно разумным (если не считать явной опечатки, которую тест пытается прочитать от закрытого члена).
Утверждения чисел с плавающей запятой и чисел с плавающей запятой двойной точности могут быть сложными при использовании правил округления, но нет ничего плохого в том, чтобы утверждать, что вы получаете точный ответ в случае использования, когда округление не ожидается.
Ваша реализация Checkout является немного странная в контексте TDD. Там намного больше кода, чем мотивируется этим единственным тестом, а API Checkout не совсем соответствует тому, что вы написали в этом тесте. Это оставляет вам реализацию, которая не совсем похожа на тестовую.
Вы уверены, что утверждение if (((List <Object>) basket1) .size () == 0) работает правильно?