Этого assertEquals(currentOccupier.size(), 1)
действительно недостаточно.
Вы хотите утверждать, что карта содержит запись, которую вы добавили в карту.
Это утверждение слишком поверхностно: оно не проверяет для ввода ни значение ключа, ни значение значения.
Вы должны сделать что-то вроде:
ChannelHandlerContext actualContext = landLord.get("test");
assertSame(addedContext, actualContext);
// or assertEquals if the instances may differ because you do some defensive copy in add()
Также обратите внимание, что здесь вы дразните некоторые вещи, которые не должны быть высмеяны: occupier
и channelHandlerContext
составляют часть вашей модели. Вы должны быть в состоянии предоставить «нормальные» экземпляры их в рамках теста.
Здесь у вас есть два основных способа сделать это:
1) добавление публичного метода в тестируемый класс для поиска ChannelHandlerContext
:
public ChannelHandlerContext get(String name){
currentOccupier.get(name);
}
Делайте это только , если предоставление такого доступа приемлемо.
Если вы не можете добавить общедоступный метод, добавьте метод уровня пакета, так как он не является частью открытого API.
2) использовать api отражения (в основном Class.getDeclaredField(String)
и Field.get()
), чтобы извлечь экземпляр карты из тестируемого экземпляра, а затем утверждать, что он содержит ожидаемый экземпляр ChannelHandlerContext
для ключа "test".