Вы должны убедиться, что библиотека JUnit находится на вашем пути сборки. Ваша версия Eclipse имеет встроенные библиотеки JUnit3, JUnit4 и JUnit5.
Вы должны попытаться создать новый контрольный пример JUnit с помощью команды меню: File/New/JUnit Test Case
и выбрать один из следующих параметров: ![New JUnit Test Case Dialog](https://i.stack.imgur.com/BWWdo.png)
- Новый тест Junit3
- Новый тест Junit4
- Новый тест Junit Jupiter
Введите имя класса вашего теста (и пакета, если необходимо), нажмите кнопку Finish
, и вы попадете в диалоговое окно, чтобы добавить соответствующую библиотеку JUnit в путь сборки. ![Add Junit4 library to the build path](https://i.stack.imgur.com/GZjfT.png)
Нажмите кнопку OK
и затем вы можете добавить / отредактировать свой тестовый класс.
package my.task;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
class AccountTest {
@Test
public void onWithdrawalBalanceShouldBeReduced() {
Account account = new Account(200d);
account.withdraw(50d);
assertEquals("Account balance should be reduced to 150", 150d, account.getBalance(), 0.001);
}
}
Обратите также внимание на следующие моменты:
- метод
withdraw
в Account
фактически не вычитает сумму снятия, и тест не пройден:
java.lang.AssertionError: Account balance should be reduced to 150 expected:<150.0> but was:<250.0>
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.failNotEquals(Assert.java:835)
at org.junit.Assert.assertEquals(Assert.java:555)
at my.task.AccountTest.onWithdrawalBalanceShouldBeReduced(AccountTest.java:14)
...
как правило, не рекомендуется использовать тип с плавающей запятой для баланса, поскольку это может привести к нежелательным ошибкам округления:)
, если вам действительно нужно использовать assertThat
, и сопоставители подколенного сухожилия is()
и equalTo
, вам нужно исправить импорт:
package my.task;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.CoreMatchers.*;
import org.junit.Test;
public class AccountTest {
@Test
public void onWithdrawalBalanceShouldBeReduced() {
Account account = new Account(200d);
account.withdraw(50d);
assertThat(account.getBalance(), is(equalTo(150d)));
}
}