В Junit я хочу проверить, что длина возвращаемой строки меньше заданной длины. Я делаю следующее, и это проходит. Но я хочу знать, есть ли лучшее альтернативное решение, чтобы протестировать его.

Assertions.assertTrue(roomEntity.getRoomType().length()<=10);

Благодарность

1
RS0023 18 Авг 2020 в 16:28

2 ответа

Лучший ответ

Ваша попытка хороша. Вы можете использовать assertThat (), который может быть немного более читаемым.

import static org.hamcrest.Matchers.lessThanOrEqualTo;
import static org.junit.Assert.assertThat;

...

assertThat(roomEntity.getRoomType().length(), lessThanOrEqualTo(10));

Или преобразовать длину в собственную переменную.

import static org.hamcrest.Matchers.lessThanOrEqualTo;
import static org.junit.Assert.assertThat;

...

int roomTypeLength = roomEntity.getRoomType().length();
assertThat(roomTypeLength, lessThanOrEqualTo(10));
0
Milgo 18 Авг 2020 в 13:45

Вот как я следую для этого.

Вы можете использовать одну из этих библиотек. Оба работают одинаково.

<!-- https://mvnrepository.com/artifact/org.assertj/assertj-core -->
<dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-core</artifactId>
    <version>3.16.1</version>
    <scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.easytesting/fest-assert -->
<dependency>
    <groupId>org.easytesting</groupId>
    <artifactId>fest-assert</artifactId>
    <version>1.4</version>
    <scope>test</scope>
</dependency>

Теперь о сегменте кода.

Assertions.assertThat(roomEntity.getRoomType().length()).isLessThanOrEqualTo(10);

В него также включены некоторые другие полезные способы, такие как isLessThan, isBetween, hasSize и т. Д.

0
dhanushkac 19 Авг 2020 в 03:16