在 jUnit5 中测试数组长度
Testing array length in jUnit5
我遇到这个问题,我必须测试数组的长度是否为 3。
private Number[] number;
这是我的测试,用于检查我的数组长度是否为 3
@Test
void arrayHasALengthOf3(){
Number[] number;
assertTrue(number == 3);
}
我真的不知道怎么解决这个问题所以你们能帮帮我吗...
可能的解决方案之一。
@Test
void arrayHasALengthOf3() {
final int EXPECTED_LENGTH = 3;
Number[] number = new Number[EXPECTED_LENGTH]; // you need to initialize it.
// Use number.length to get the length of the array.
assertEquals(number.length, EXPECTED_LENGTH);
}
您可以使用包含 Number[]
的 class 初始化数组。
您的主要问题是如何定义数组以及如何检查长度。
为什么要做这种检查?
如果您在测试中初始化 Number[] number = Number[3]
数组,则没有必要断言长度,因为它的长度始终为 3(除非您以最有可能不应该做的方式重新分配变量)。
如果您想检查数组中有多少非空值或检查它是否包含预期值,情况会有所不同:
public class NumbersTest {
@Test
void test() {
Number[] numbers = new Number[]{1, 2, null};
long count = Arrays.stream(numbers).filter(Objects::nonNull).count();
Assertions.assertEquals(2, count);
Assertions.assertTrue(numbers.length == 3); //this will be always true unless you reassign numbers variable
Assertions.assertArrayEquals(numbers, new Number[] {1, 2, null}); //check if contains expected values
}
}
import static org.assertj.core.api.Assertions.assertThat;
@Test
void arrayHasALengthOf3(){
Number[] number = new Number[3];
assertThat(number).hasSize(3);
}
我遇到这个问题,我必须测试数组的长度是否为 3。
private Number[] number;
这是我的测试,用于检查我的数组长度是否为 3
@Test
void arrayHasALengthOf3(){
Number[] number;
assertTrue(number == 3);
}
我真的不知道怎么解决这个问题所以你们能帮帮我吗...
可能的解决方案之一。
@Test
void arrayHasALengthOf3() {
final int EXPECTED_LENGTH = 3;
Number[] number = new Number[EXPECTED_LENGTH]; // you need to initialize it.
// Use number.length to get the length of the array.
assertEquals(number.length, EXPECTED_LENGTH);
}
您可以使用包含 Number[]
的 class 初始化数组。
您的主要问题是如何定义数组以及如何检查长度。
为什么要做这种检查?
如果您在测试中初始化 Number[] number = Number[3]
数组,则没有必要断言长度,因为它的长度始终为 3(除非您以最有可能不应该做的方式重新分配变量)。
如果您想检查数组中有多少非空值或检查它是否包含预期值,情况会有所不同:
public class NumbersTest {
@Test
void test() {
Number[] numbers = new Number[]{1, 2, null};
long count = Arrays.stream(numbers).filter(Objects::nonNull).count();
Assertions.assertEquals(2, count);
Assertions.assertTrue(numbers.length == 3); //this will be always true unless you reassign numbers variable
Assertions.assertArrayEquals(numbers, new Number[] {1, 2, null}); //check if contains expected values
}
}
import static org.assertj.core.api.Assertions.assertThat;
@Test
void arrayHasALengthOf3(){
Number[] number = new Number[3];
assertThat(number).hasSize(3);
}