J'ai un problème simple, je ne sais pas comment résoudre!
J'ai un seul fichier 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;
}
}
et j'ai une classe de test simple à UserTest.java
côté de cette classe:
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));
}
}
Je veux lancer cette classe de test pour la User
classe. Je ne suis pas en utilisant comme IDEs IntelliJ ou Eclipse, donc je veux compiler le test de la ligne de commande linux, mais cette commande:
javac -cp .:"/usr/share/java/junit.jar" UserTest.java
me donne les erreurs suivantes:
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
Note: tout ce que j'ai vu sur Stackoverflow est de tester un seul fichier dans un projet ou la construction et les tests gradle et ..., mais je ne sais pas beaucoup sur Java et je ne pas besoin de savoir beaucoup, je juste besoin de connaître la façon la plus simple pour créer et exécuter un test pour une seule classe Java.
Note2: J'ai installé avec JUnit apt install junit
et installé la junit-3-8-2
version.
Note3: J'ai des problèmes lorsque vous essayez de compiler ma classe de test, je ne l' ai pas encore atteint le stade où je peux exécuter les tests!
Après beaucoup d'essais et d' erreurs dans la section des commentaires tout à fait, la cause était un vieux JUnit 3.8.2 dépendance. Les versions 3.x ont utilisé un espace de noms différent qui a été changé dans 4.x pour org.junit
.
Par conséquent, les classes où ne se trouvent pas lors de la compilation du test.
Pour déboguer ces problèmes décompressé le pot avec unzip
Linux peut être utile.