Это означает, что ваш код использовал ссылочную переменную объекта, которая была установлена в нуль (т. е. она не ссылалась на экземпляр фактического объекта).
Чтобы предотвратить ошибку, объекты, которые могут быть пустыми, должны быть протестированы для 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
}
Вы не переопределили метод equals()
из класса Object в своем классе Money. Если это так, объекты сравниваются по их ссылкам, которые в этом случае различны. Здесь вы можете найти правила для реализации equals
.
Вы можете написать свои тесты для сравнения полей:
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());