Mockito:测试返回的字符串是否小于给定长度

Mockito: To test that a returned String is under a given length

在 Junit 中,我想检查返回的字符串的长度是否低于给定的长度。 我正在执行以下操作并且正在通过。但我想知道是否有更好的替代方案对其进行测试。

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

谢谢

你的尝试很好。您可以使用 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));

这是我遵循的方式。

您可以使用这些库之一。两者的工作原理相同。

<!-- 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 等。