Java JUnit assertEquals с Long

Я не уверен, как OP заставил это работать, но Rails button_to генерирует элемент , который не допускает HTML в поле значения.

См. Также: тип ввода = & quot; отправить & quot; Против тега кнопки они взаимозаменяемы?

Лучшая альтернатива в этой ситуации - заставить link_to PUT (или POST):

<%= link_to raw("Add To Cart"), 
          line_items_path(product_id: product), 
          class: "btn btn-success",
          method: :put %>

10
задан Hamza Yerlikaya 18 June 2009 в 14:35
поделиться

4 ответа

Вы хотите:

assertEquals(42681241600L, 42681241600L);

Ваш код вызывал assertEquals (Object, Object).

20
ответ дан 3 December 2019 в 14:53
поделиться

добавьте букву «L» в конце вашего числа, например:

new Long(42681241600L)

в Java каждый буквальный номер обрабатывается как целое число.

2
ответ дан 3 December 2019 в 14:53
поделиться

42681241600 интерпретируется как литерал int , который слишком велик, чтобы быть. Добавьте букву L, чтобы превратить его в длинный литерал.

Если вы хотите получить всю техническую информацию, вы можете найти §3.10.1 JLS :

Целочисленный литерал имеет тип long , если он дополнен буквой ASCII L или l (ell); в противном случае он имеет тип int (§4.2.1) . Суффикс L является предпочтительным, потому что букву l (ell) часто трудно отличить от цифры 1 (один).

7
ответ дан 3 December 2019 в 14:53
поделиться

Вам также обычно следует рассмотреть возможность использования Long.valueOf, поскольку это может позволить некоторую оптимизацию:

Long val = Long.valueOf(1234L);

Из J2SDK :

общедоступное статическое Long valueOf (long l)

Возвращает экземпляр Long, представляющий указанное длинное значение. Если новый Длинный экземпляр не требуется, это метод обычно следует использовать в предпочтение конструктору Long (длинный), так как этот метод вероятен чтобы освободить значительно лучшее пространство и время выполнения за счет кеширования часто запрашиваемые значения.

2
ответ дан 3 December 2019 в 14:53
поделиться
Другие вопросы по тегам:

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