测试应该能够很好地覆盖此类可以抛出的异常和错误的类型,并且它应该在CalculatePrimesMother的构造函数方法中很好地覆盖缺陷语句。
需要三个Junit测试用例的方法如下:
public CalculatePrimesMother(int numWorkers, int queueLength, int maxPrime,
boolean verbose) {
this.numWorkers = numWorkers;
// Instantiate 3 queues, for thread-safe communication with workers
Candidate = new ArrayBlockingQueue<Integer>(queueLength);
Prime = new ArrayBlockingQueue<Integer>(queueLength);
Composite = new ArrayBlockingQueue<Integer>(queueLength);
this.maxPrime = maxPrime;
this.sqrtMaxPrime = (int) Math.sqrt(maxPrime);
primeFactors = new int[sqrtMaxPrime];
this.verbose = verbose;
}
我尝试并创建了一些测试用例,但是没有人能够完全覆盖,任何人都可以帮助我吗?
public class CalculatePrimesMotherTest extends TestCase {
public CalculatePrimesMotherTest(String name) {
super(name);
}
private CalculatePrimesMother testMother;
@Test
public final void testCalculatePrimesMotherNegativequeueLength() {
try {
testMother = new CalculatePrimesMother(4, -12, 908, false);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public final void testCalculatePrimesMotherMinusOne() {
try {
testMother = new CalculatePrimesMother(8, 12, 0, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
你得到什么报道?如果你的ctor没有测试,那么一次调用就应该运用我看到的所有代码。
你写的代码太多了。 setUp和tearDown以及测试构造函数方法都是不必要的。删除它们。
在其他测试中,您不需要try / catch块。也删除它们。您希望异常触发测试失败。捕获将隐藏错误。