【发布时间】:2020-03-04 05:00:16
【问题描述】:
所以我有 2 段 Java 代码。一个是一小段简单的源代码,另一个是我试图弄乱的 JUnit 测试类。但是,每当我想调试代码以确保此简单代码正确显示时,我都会在 java.util.ArrayList.forEach(ArrayList.java:1507) 错误处收到 NullPointerException。
这是我的源代码:
public class sourceCode {
public int mid(int x, int y, int z) {
int m = z;
if (y < z) {
if (x < y) {
m = y;
}
else if (x < z) {
m = x;
}
}
else {
if (x > y) {
m = y;
}
else if (x > z) {
m = x;
}
}
return m;
}
}
这是我的 JUnit 测试用例代码:
import static org.junit.jupiter.api.Assertions.*;
import org.junit.Before;
import org.junit.jupiter.api.Test;
public class sourceCodeTest {
public sourceCode sourceCodeVar;
//Test Fixture
@Before
public void setUpBeforeClass() throws Exception {
sourceCodeVar = new sourceCode();
}
@Test
void test() {
//Test Oracle
int oracle = 2;
//Test Case
int middleTest1 = sourceCodeVar.mid(1, 2, 3);
assertEquals(oracle, middleTest1);
}
}
调查结果
它们都是同一目录下的不同文件,它们也是在 Eclipse 中的一个项目中创建的。我在另一个稍微相关的线程中看到它可能是与 Eclipse 相关的错误,但是在 VS Code 上对其进行测试时,出现了相同的错误,这表明这是我的错误。
我想我之所以如此困惑的原因是代码似乎很简单,以至于我无法确定我搞砸的地方。
【问题讨论】:
-
请提供证据。堆栈跟踪。
标签: java unit-testing testing arraylist junit