【发布时间】:2013-01-10 06:03:04
【问题描述】:
我有课。
我在该类的构造函数中初始化了一个变量。
我调用了一个包含while 循环的方法,并且每次都递增变量。
我写了一个测试来检查该方法被调用后的变量值(并通过一次while循环)。
public class ThreadGenerator implements Runnable {
private int requests;
private int limit;
public ThreadGenerator() {
requests = 0;
}
public void setRequestLimit(int anyLimit) {
this.limit = anyLimit;
}
public void generateThread() {
new Thread(this).start();
}
public void run() {
while(requests < limit) {
try {
// do some stuff
requests++;
// close some stuff
} catch (IOException e) {
e.printStackTrace();
}
}
}
public int getRequests() {
return requests; // calling this method from my tests always returns 0
}
在我的测试中,当我创建此类的新实例,然后在该类上调用此方法时,它会正确运行并正确递增请求计数器。我已经尝试了几个打印语句来确保这一点。但是,如果我在测试中对 ThreadGenerator 对象调用 getRequests,它将返回 0,即初始化时的数量。
我的测试代码:
ThreadGenerator threadGenerator = new ThreadGenerator();
threadGenerator.setRequestLimit(1);
threadGenerator.generateThread();
assertEquals(threadGenerator.getRequests(), 1);
如何修改我在构造函数中初始化的这个变量并在我的测试套件中访问它?
【问题讨论】:
-
你能告诉我们你的测试代码吗?
-
generateThread() 是做什么的?
标签: java constructor scope variable-assignment