我有一个简单的问题,我不知道如何解决!
我只有一个Java文件User.java
:
import java.util.Vector;
public class User {
private String name;
private Vector<User> friends;
public User(String name) {
this.name = name;
this.friends = new Vector<>();
}
public void addFriend(User newfriend) {
friends.add(newfriend);
}
public boolean isFriendsWith(User friend) {
return friends.indexOf(friend) != -1;
}
}
在该课程的旁边还有一个简单的测试课程UserTest.java
:
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class UserTest {
@Test
public void evaluatesExpression() {
User user = new User("foo");
User user2 = new User("bar");
user.addFriend(user2);
assertEquals(true, user.isFriendsWith(user2));
}
}
我想为User
类运行该测试类。
我没有使用像IntelliJ或Eclipse这样的IDE,所以我想从Linux命令行编译测试,但是要使用以下命令:
javac -cp .:"/usr/share/java/junit.jar" UserTest.java
给我以下错误:
UserTest.java:1: error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
^
UserTest.java:1: error: static import only from classes and interfaces
import static org.junit.Assert.assertEquals;
^
UserTest.java:2: error: package org.junit does not exist
import org.junit.Test;
^
UserTest.java:6: error: cannot find symbol
@Test
^
symbol: class Test
location: class UserTest
UserTest.java:11: error: cannot find symbol
assertEquals(true, user.isFriendsWith(user2));
^
symbol: method assertEquals(boolean,boolean)
location: class UserTest
5 errors
注意:我在Stackoverflow上看到的所有内容都是关于测试项目中的单个文件或使用gradle和...进行构建和测试,但是我对Java知之甚少,我没有不需要了解太多,我只需要了解为单个Java类创建和运行测试的最简单方法即可。
注2::我已经安装了apt install junit
的junit,并且它安装了junit-3-8-2
版本。
注3::在尝试编译我的测试类时遇到了问题,甚至还没有达到可以运行测试的阶段!
答案 0 :(得分:2)
在注释部分进行了大量的反复试验之后,根本原因是旧的JUnit 3.8.2依赖关系。 3.x版本使用了另一个名称空间,该名称空间在4.x中已更改为org.junit
。
因此,在编译测试时找不到这些类。
要调试此类问题,在Linux上使用unzip
解压缩jar会很有帮助。