Vam*_*yer 2 java unit-testing fibonacci
如何测试返回斐波那契数列的类?我在这段代码中使用了迭代器。FibonacciIteratorTest 类如下。
public class FibonacciIterator implements Iterator<Integer>, Iterable<Integer>{
private int num1;
private int num2;
private int num3;
private int count;
private int to;
public FibonacciIterator(int to){
this.num1 = 0;
this.num2 = 1;
this.to = to;
this.count = -1;
}
public static Iterable<Integer> to(int num){
return new FibonacciIterator(num);
}
@Override
public Iterator<Integer> iterator(){
return this;
}
@Override
public boolean hasNext(){
if(count < to){
count++;
return true;
}
return false;
}
@Override
public Integer next(){
if(count < 2){
return count;
}
num3 = num1 + num2;
num1=num2;
num2=num3;
return num3;
}
}
Run Code Online (Sandbox Code Playgroud)
预期值应为 0 1 1 2 3 5 8 13 21 34 55,而不是 55。
class FibonacciIteratorTest {
@Test
void shouldReturnFibonacciNumbers(){
FibonacciIterator fibonacciNumbers= new FibonacciIterator();
assertEquals(55,fibonacciNumbers.to());
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到您的fibonacciNumbers.to方法返回int [],您可能需要使用assertArrayEquals:
int arr[]={0,1,1,2,3,5,8,13,21,34};
assertArrayEquals(arr, fibonacciNumbers.to(10));
Run Code Online (Sandbox Code Playgroud)
如果您的方法fibonacciNumbers.to()返回的不是 int 数组,那么请告诉我们,以便可以相应地更改答案。
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |