Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 154

Не работает метод согласно условиям из Junit

29.07.2019, 15:05. Показов 624. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех, хочу получить консультация по поводу того почему же у меня не работает метод согласно требуемому тесту из Jnit.
Вот мой код. Вкратце, у меня имеется метод, которые должен добавлять в массив(allBids), который находится внутри объекта Item, объекты Bid. Согласно условиям которые находятся в Junit тесте.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void addBid (Person bidder,long Price) {
 
        if(Price==0){
            throw new IllegalArgumentException("Bid cannot equals zero");
        }
 
        if(bidder==null){
            throw new NullPointerException("Cannot be Bid created without a bidder");
        }
 
        if(Price<0){
            throw new IllegalArgumentException("Bid cannot be negative");
        }
 
 
        if (Price>=this.minPrice){
            Bid newbid = new Bid(bidder, Price);
            this.allBids.add(newbid);
            if(this.getHighestBid().getPrice()<=Price){
                highestBid=newbid;
            }
 
         }
Junit тест:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 public void testAddBid() {
        item.addBid(p1, 4);
        assertEquals("Item.addBid() shouldn't create a new bid if its price is below the minPrice!", 0,
                item.getAllBids().size());
       assertNull("Item.addBid() should not set a highest bid, when its price is below the minPrice!",
                item.getHighestBid());
 
        item.addBid(p1, 5);
        assertEquals("Item.addBid() should create a new bid!", 1, item.getAllBids().size());
        b = item.getHighestBid();
        assertTrue("Item.addBid() should set bid as highest bid, when bid's price is higher than minPrice!",
                b.getBidder() == p1 && b.getPrice() == 5);
 
        item.addBid(p2, 6);
        assertEquals("Item.addBid() should create a new bid!", 2, item.getAllBids().size());
        b = item.getHighestBid();
        assertTrue("Item.addBid() should set bid as highest bid, when bid's price is higher than current highest bid!",
                b.getBidder() == p2 && b.getPrice() == 6);
 
        item.addBid(pNotHighestPrice, 1);
        assertEquals("Item.addBid() shouldn't create a new bid, if the price isn't higher than current highest bid!",
                2, item.getAllBids().size());
        b = item.getHighestBid();
        assertTrue("Item.addBid() shouldn't change the highest bid, when bid's price isn't higher than current highest bid!",
                b.getBidder() == p2 && b.getPrice() == 6);
 
        item.addBid(pNotHighestPrice, 6);
        assertEquals("Item.addBid() shouldn't create a new bid, if the price isn't higher than current highest bid!",
                2, item.getAllBids().size());
        b = item.getHighestBid();
        assertTrue("Item.addBid() shouldn't change the highest bid, when bid's price isn't higher than current highest bid!",
                b.getBidder() == p2 && b.getPrice() == 6);
 
        List<Bid> allBids = item.getAllBids();
        assertEquals("Item.getAllBids() should return a list containing all bids which were the highestBid!", 2, allBids.size());
    }
Хочу узнать почему у меня вылетает ошибка сразу на втором пункте?
Java
1
2
assertNull("Item.addBid() should not set a highest bid, when its price is below the minPrice!",
                item.getHighestBid());
Весь мой код здесь:
https://drive.google.com/open?... k1tqFAgaN1
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2019, 15:05
Ответы с готовыми решениями:

Модифицировать строку согласно условиям
В приложении должна вводиться строка. Модифицируйте её согласно условиям. Вставит букву «А» после и перед каждой буквы «В», заменить все...

Изменить элементы матрицы согласно условиям
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;iomanip&gt; #include &lt;ctime&gt; #include...

Изменить элементы исходного массива согласно условиям
Вот задача: Дан массив целых чисел. а) Все элементы, кратные числу 10, заменить нулем, 6) Все нечетные элементы удвоить, а четные уменьшить...

6
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
29.07.2019, 15:08
Цитата Сообщение от Федо Посмотреть сообщение
when its price is below the minPrice!
в каком месте ты это проверяешь?
1
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 154
29.07.2019, 15:32  [ТС]
xoraxax
Item.addBid() should not set a highest bid, when its price is below the minPrice!
Я перевел это как:"метод Айтем.эдБид не должен создавать самый высокий бид, если его цена ниже минЦены"
т.е. ели создающийся Бид меньше минимальной цены, то вызов конструктора, не должен производиться.
Цитата Сообщение от xoraxax Посмотреть сообщение
в каком месте ты это проверяешь?
здесь:
Java
1
2
if (Price>=this.minPrice){
            Bid newbid = new Bid(bidder, Price);
второе условие для создание самого большого бида вложенное, и вызовется только если условие минцены выполняется.

Или я что-то путаю?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
29.07.2019, 15:36
Федо, переменные всегда с маленькой буквы. Ты зачем все в один тест напихал, давай и весь код в одном методе одного класса писать? Разбей своего монстра на маленькие тестики по 1 ассерту
1
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 154
29.07.2019, 15:50  [ТС]
Welemir1, приветствую!

Весь мой код здесь.
К сожалению мои слегка ленивые преподы сделали так) А я сам не знаю как менять тест)....((((
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 154
29.07.2019, 21:35  [ТС]
Ребят ни у кого идей нет? Может это косячный тест?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public Bid getHighestBid() {
 
        long temp = 0;
        int position = 0;
 
        for(int i = 0; i < allBids.size(); i ++){
            if(allBids.get(i).getPrice() > temp){
                temp = allBids.get(i).getPrice();
                position = i;
 
            }
        }
        return allBids.get(position);
        /*if(temp>=minPrice){
        return highestBid=allBids.get(position);}
        else{ return null;        }*/
 
 
    }
Хочу отметить, то если я немного меняю метод достать самый высокий Бид, где ставлю ограничение на то чтобы достать самый высокий Бид, то тест проходит....
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 154
30.07.2019, 10:04  [ТС]
Приветствую всех еще раз,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (price>=this.minPrice){
            if(this.getHighestBid()==null){
                Bid newbid = new Bid(bidder, price);
                this.allBids.add(newbid);
            }
            else if(this.getHighestBid()!=null){
                if(this.getHighestBid().getPrice()<price) {
                    Bid newbid = new Bid(bidder, price);
                    this.allBids.add(newbid);
                    highestBid=newbid;
 
                }
                }
 
            }
 
         }
Вот правильный кусок кода, проблема была в том, что я не обрабатывал тот случай когда мой самый высокий Бид равен нулл. Таким образом у меня вечно и вылетала ошибка. Ибо в самом начале выского бида нет. Всем спасибо! Все свободны))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2019, 10:04
Помогаю со студенческими работами здесь

Как указать значение согласно 4 условиям если
Здравствуйте!!!! Гении макроса!! Кому не сложно помогите Действие №1 1) Если в столбце &quot;условие 2&quot; значение...

Получить действительную матрицу согласно заданным условиям
Дано натуральное число N. Получить действительную матрицу A, для которой (A=sin(i+j) при i&lt;j) (A=1 при i=j) (A=(i+j)/(2i+3j) в...

Разделить введенные числа на три списка, согласно условиям.
Играем в Jолушку 1. Введи с клавиатуры 20 чисел, сохрани их в список и рассортируй по трём другим спискам: Число нацело делится на 3...

Какую CMS для Школы танцев и интернет магазина. Согласно условиям ?
Какую CMS для Школы танцев и интернет магазина. Согласно условиям ? Здравствуйте ! ___________________________ Вопрос 1 - По...

Заполнение одного каталога файлами из двух других каталогов согласно заданным условиям
Два каталога, содержащих файлы (*.txt) и не содержащие подкаталогов. (C:\WORK\OS\TEST\dir1 и C:\WORK\OS\TEST\dir2). Третий каталог...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru