Параметрированные тесты для этой инструкции if [duplicate]

Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена ​​в нуль (т. е. она не ссылалась на экземпляр фактического объекта).

Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для null перед тем, как использовать.

if (myvar != null)
{
    // Go ahead and use myvar
    myvar.property = ...
}
else
{
    // Whoops! myvar is null and cannot be used without first
    // assigning it to an instance reference
    // Attempting to use myvar here will result in NullReferenceException
}
0
задан Bhesh Gurung 8 December 2011 в 07:54
поделиться

2 ответа

Вы не переопределили метод equals() из класса Object в своем классе Money. Если это так, объекты сравниваются по их ссылкам, которые в этом случае различны. Здесь вы можете найти правила для реализации equals.

8
ответ дан Bhesh Gurung 25 August 2018 в 02:58
поделиться

Вы можете написать свои тесты для сравнения полей:

Money m1 = new Money(money1.getCurrency(),new Value(22,70));
Money m2 = new Money(money1.getCurrency(),new Value(22,70)).add(money2);

assertEquals("currencies differ", m1.getCurrency(), m2.getCurrency());
assertEquals("values differ",  m1.getValue(), m2.getValue());
1
ответ дан Bohemian 25 August 2018 в 02:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: