2013-08-06 2 views
0

Я выполняю модульное тестирование (JUnit 4), и я использую assertEquals(), но я не могу найти assertEquals(boolean, boolean).Eclipse code assist

Пожалуйста, скажите, является ли это универсальным методом, то есть eclipse автоматически настраивается на тип передаваемого аргумента. Например, если я выберу assertEquals(double, double), и я передам строку, она будет работать? Если да, то это потому, что это общий метод , который работает с широким диапазоном типов данных, и Eclipse автоматически настраивается на тип передаваемого аргумента.

Я также хотел бы знать (просто для понимания цели), что означают графические символы внутри окна помощи кода.

+2

AssertTrue и assertFalse методы. Подумайте об условностях. –

+0

Eclipse действительно не должен ничего с этим делать, это область компилятора. Если вы используете два 'boolean' в качестве аргументов, компилятор разрешит подпись метода к этому, то же самое для' double' и так далее. –

ответ

1

Если вы хотите, чтобы проверить логическое значение, вы можете использовать assertTrue(yourBoolean); или assertFalse(yourBoolean); Там нет (и нет необходимости) assertEquals(boolean, boolean);

И да это родовое и приспосабливается к типу данным, если находки. Тем не менее, если вы хотите сравнить удвоения, вы можете добавить погрешность, означающую, насколько близки двойники должны быть друг к другу, чтобы считаться равными. assertEquals(expectedDouble, actualDouble, delta);

1

См. JavaDoc for Assert.

И нет, этого метода не существует, но вместо этого вы можете использовать assertTrue(boolean)/assertFalse(boolean).

Приветствия,

0

Попробуйте использовать

assertTrue(boolean == boolean); 
+0

Почему boolean == boolean, когда вы только что рассматриваете логическое значение, проверяемое непосредственно assertTrue или assertFalse? – Akunosh

+0

Что делать, если вы знаете правильное значение только во время выполнения? –

+0

Тогда каков будет источник ожидаемого булева, потому что он, очевидно, не может иметь тот же источник, что и проверенный? Может быть, мне просто не хватает примера, где изменено логическое значение, и вы можете прочитать где-то еще то, что ожидаете, не имея возможности установить это в конкретных тестовых темах. Если утверждение терпит неудачу, я не буду уверен, проведет ли он неправильное ожидание или действительно совершит ошибку. – Akunosh

4

Кодекса помощь делает ничего, кроме показа того, что есть в наличии, и размещения «шаблон» при выборе метода не делать. Вы можете технически выбирать все, что хотите, а затем передавать разные параметры (пока существует метод с этой сигнатурой). Важно то, как JVM будет интерпретировать ваш код.

Я не знаю, у вас уже есть, но место

import static org.junit.Assert.*; 

в верхней части вашего кода, и вы должны увидеть все методы JUnit, включая логическую и строку версию assertEquals.

Для вашего второго вопроса относительно кода помочь символам, они относятся к видимости, следующим образом:

  • Зеленый круг: Общественной
  • желтый бриллиант: Protected
  • Красной площади: Частное лицо
  • Blue Triangle: Пакет
+1

хотя бы кто-то, кто действительно ответил на вопрос ... – WarrenFaith

+0

@WarrenFaith "THE" вопрос? Насколько я вижу, он задал по крайней мере три или четыре вопроса. – Akunosh

0

Это overloading и не имеет ничего общего с Eclipse. Eclipse просто помогает вам при вводе. Итак, даже если вы заберете assertEquals(double, double), и фактические параметры, которые вы передаете методу, допустим, Object s, он будет работать.Подбор метода, который принимает double s, не означает, что вы вынуждены пройти double s. Вы можете передать любой тип, который вам нужен, если есть перегруженный метод, который их принимает.