Я новичок в JUnit, поэтому извините, если то, что я спрашиваю, слишком просто.Я искал в Интернете, и я считаю, что я все делаю правильно, когда дело доходит до метода assertTrue ().Тем не менее, когда я запускаю этот тест, он возвращается, что он прошел, когда он намеренно потерпел неудачу.Дайте мне знать, если я делаю что-то не так.В настоящее время я использую Intellij IDEA и JUnit4.Вот мой основной класс:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class PrimeNumbers implements Iterable<Integer> {
private List<Integer> primes = new ArrayList<Integer>();
/*
* creates a list of n prime numbers
*
* @param n - the number of primes to compute silently treats negative
* arguments as zero
*/
public void computePrimes(int n) {
int count = 1; // count of primes
int number = 2; // number tested for primeness
boolean isPrime; // is this number a prime
while (count <= n) {
isPrime = true;
for (int divisor = 2; divisor <= number / 2; divisor++) {
if (number % divisor == 0) {
isPrime = false;
break; // for loop
}
}
if (isPrime && (number % 10 != 9)) { // THIS IS THE FAULT!!!
primes.add(number);
count++;
}
number++;
}
}
@Override
public Iterator<Integer> iterator() {
return primes.iterator();
}
@Override
public String toString() {
return primes.toString();
}
}
и вот мой тестовый класс:
import org.junit.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import static org.junit.Assert.*;
public class PrimeNumbersTest {
@Test
public void test(){
//instantiate prime object, create primes list, and iterator
PrimeNumbers prime = new PrimeNumbers();
List<Integer> primes = new ArrayList<Integer>();
Iterator<Integer> primeIterator = primes.iterator();
//array holding 19 so I can compare the objects
int[] primeArray = new int[]{2,3,5,7,11,13,17,19};
int i = 0;
int n = 8;
//call the method
prime.computePrimes(n);
//loop to iterate through the list and then check last item if it is equal to 19
while(primeIterator.hasNext()){
if(!(primeIterator.equals(primeArray[i]))) {
assertTrue("incorrect", primeIterator.equals(primeArray[i]));
}
i++;
primeIterator.next();
}
}
}
Спасибо, ребята!