powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / junit проблема
11 сообщений из 11, страница 1 из 1
junit проблема
    #33800761
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартный пример в docs прилагающихся к Junit
тесты стал разбират никак не могу понять почему заглушка
return true не работает
для
Assert.assertEquals(m12CHF,new Money(12,"CHF"));
пишет сообщение что ожидался объект Money с адресом тттт а вместо этого стоит объект Money с др адресом т....
Вот не могу никак понять хоть тресни
если использоваьть как дано в примеере instanceof то работает а если просто возвращать true то нет.

Зачем он ожидает должен же просто выполнить equals
...
Рейтинг: 0 / 0
junit проблема
    #33800779
llemingстандартный пример в docs прилагающихся к Junit
тесты стал разбират никак не могу понять почему заглушка
return true не работает
для
Assert.assertEquals(m12CHF,new Money(12,"CHF"));
пишет сообщение что ожидался объект Money с адресом тттт а вместо этого стоит объект Money с др адресом т....
Вот не могу никак понять хоть тресни
если использоваьть как дано в примеере instanceof то работает а если просто возвращать true то нет.

Зачем он ожидает должен же просто выполнить equals


они же по ссылке сравниваются а не по значению.
...
Рейтинг: 0 / 0
junit проблема
    #33800784
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если мани использует equals от Object - то все правильно, там ссылки проверяются
...
Рейтинг: 0 / 0
junit проблема
    #33800812
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сравниваются по ссылке то ссылки должны быть одинаковые ?
...
Рейтинг: 0 / 0
junit проблема
    #33800820
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
должны указывать на один и тот же объект
...
Рейтинг: 0 / 0
junit проблема
    #33800822
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
public boolean equals(Object anObject) {
if (anObject instanceof Money) {
Money aMoney= (Money)anObject;
return aMoney.currency().equals(currency())
&& amount() == aMoney.amount();
}
return false;
}
это оигинал который работает

Assert.assertEquals(m12CHF,new Money(12,"CHF"));

оба объекта Money и m12CHF и new Money(12,"CHF")

если метод equals переделать под моней
public boolean equals(Money anObject){
if(true){ // все равно гарантировано оба объекта Money
Money a=anObject;
eturn aMoney.currency().equals(currency())
&& amount() == aMoney.amount();
}
}

и все перестает работать . Где логика где разум?
...
Рейтинг: 0 / 0
junit проблема
    #33800832
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
песец, оформи код тегами, я нифига не понял
...
Рейтинг: 0 / 0
junit проблема
    #33800838
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, я понял
у Object нет метода
equals(Money anObject)
есть
equals(Object anObject)

ты не переопределил, ты создал новый
...
Рейтинг: 0 / 0
junit проблема
    #33800878
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pitbull terrierа, я понял
у Object нет метода
equals(Money anObject)
есть
equals(Object anObject)

ты не переопределил, ты создал новый


плин спасибо агромадное
...
Рейтинг: 0 / 0
junit проблема
    #33800890
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а тоя начал катать

Money m0=new Money(12,"CHF");
Money m1=new Money(12,"CHF");
Assert.assertEquals(null, m0, m1) {
if (m0== null && m1 == null) // выраженин внутри if ,not null, так как оба объекта not null
return;
if (m0 != null && m0.equals(m1)) // Здесь он вызывает метод equals который я по идее переопределил и где сравниваца тоже по идее должны лишь значения их полей amount а они равны у обоих объектов 12 ти и валюта как видно одинаковая тогда почему m0.equals(m1)дает false
return;
failNotEquals(null, m0, m1);
}


а здеся правильно работает

public static void main(String[] args){
Money m0=new Money(12,"CHF");
Money m1=new Money(12,"CHF");
System.out.println(m0.equals(m1));
}
...
Рейтинг: 0 / 0
junit проблема
    #33800910
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая хитрая ошибка блин столько времени потратил хотел сжулить нифига не получилось :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / junit проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]