这次我关注了Junit Getting Started 链接,并且示例有效。
以下是我在 Windows 中执行的步骤;
1 : 我在桌面上创建了文件夹 test
2 : 在 test 中,我创建了 Calculator(Calculator.java) 文件
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
3。在 test 中,我创建了 CalculatorTest(CalculatorTest.java) 文件
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
4:我从Maven Repository下载了Junit 12 jar(注意:这个例子没有使用maven,我只使用maven仓库来获取jar文件)。
5:我从Maven repository下载了hamcrest-core 1.3 jar(注意:这个例子没有使用maven,我只使用maven仓库来获取jar文件)
6:test 文件夹如下所示
7:我打开 CMD 并进入 test 文件夹的根目录并执行此命令
javac -cp junit-4.12.jar;hamcrest-core-1.3.jar *.java
注意:*.java 编译所有带有 java 扩展名的文件,在本例中为 CalculatorTest.java 和 Calculator.java
8:测试文件夹现在看起来像这样
9:我执行了命令
java -cp junit-4.12.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore CalculatorTest
注意:这句话一定要在classpath中加上点(.),否则Calculator文件找不到会得到
initializationError(org.junit.runner.JUnitCommandLineParseResult)
java.lang.IllegalArgumentException: Could not find class
最后我通过命令行运行单元测试,你可以在下面看到
此时示例中没有包含package关键字,它必须添加Windows上的物理文件夹才能运行测试,让我们解释一下这个案例
1:让我们将包“stackoverflow.junit.test”添加到文件Calculator.java和CalculatorTest.java中
package stackoverflow.junit.test;
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
和
package stackoverflow.junit.test;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
2) 现在可以在 javac -cp junit-4.12.jar;hamcrest-core-1.3.jar *.java 之前使用相同的指令显示编译代码。但是,如果我想运行测试,我会得到 java.lang.NotClassDefFoundError
为了解决这个问题,必须物理创建文件夹并添加 Calculator.java 和 CalculatorTest.java
-
我使用正确的文件夹结构编译并运行测试,但考虑到此命令是从 test 文件夹根目录开始执行的。更重要的是,包的名字必须加上。
javac -cp junit-4.12.jar;hamcrest-core-1.3.jar stackoverflow/junit/test/*.java
java -cp junit-4.12.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore stackoverflow.junit.test.CalculatorTest
建议:如果您使用 Maven 或 Gradle,这一切都会变得不那么乏味。
建议:检查您的项目结构以及您的 CLASSPATH。