У меня есть это в моем тесте:
final MockKeyReader mockReader = (MockApiKeyReader) getKeyReader();
mockReader.setUpdateTime(100L);
MockKeyReader
имеет этот метод:
public void setUpdateTime(final Long updateTime) {
this.updateTime = updateTime;
}
Я думал, что, поскольку setUpdateTime
устанавливает значение this.updateTime
, когда mockReader.setUpdateTime(100L);
выполнено, оно будет доступно, когда класс, который я пытаюсь проверить, ищет его. Я неправильно понимаю, как работает this
Эта строка вызывает исключение:
if (!this.updateTime.equals(ProductionBlocking
.get(this.keyReader.updateTime(this.config.configId.toString(),
keyType.PLUSSTAR)))) {
Я только что понял, что пытаюсь сравнить два Longs
с .equals()
. Я изменил строку на:
if (this.updateTime != ProductionBlocking
.get(this.keyReader.updateTime(this.config.configId.toString(),
keyType.PLUSSTAR))) {
Хотя проблема остается. И this.updateTime
, и ProductionBlocking
.get(this.keyReader.updateTime(this.config.configId.toString(),
keyType.PLUSSTAR))
null
Я ожидал, что mockReader.setUpdateTime(100L);
установит this.updateTime
в setUpdateTime
, но этого не произошло.
У меня такое чувство тонкий может неправильно понять с моей стороны.
ProductionBlocking
.get(this.keyReader.updateTime(this.config.configId.toString(),
keyType.PLUSSTAR))
использует интерфейс ApiKeyReader
, и MockApiKeyReader
- это издевательство над этим.