我想为函数编写单元测试用例来测试 Thread.sleep() 函数是否正常工作。
有人可以提供一段代码来帮助我完成这项任务吗?:
public class A implements B {
public int func(String A) throws ApplicationException {
int ctr = 0;
int ans = 0;
for (int i=0;i<100020;i++) {
try {
++ctr;
if(ctr%50==0)
{
try
{
Thead.sleep(1000);
}
catch(java.lang.InterruptedException ie)
{
System.out.println(ie);
}
}
}
catch (Exception e) {
}
finally {
}
}
return ans;
}
}
Run Code Online (Sandbox Code Playgroud)
创建Sleeper接口:
interface Sleeper {
void sleep(long millis) throws InterruptedException;
}
Run Code Online (Sandbox Code Playgroud)
然后将 this 的一个实例注入到方法中作为参数,或者作为构造函数的参数。然后调用代替Thread.sleep.
对于测试,您可以简单地传入一个模拟,并检查它是否被调用了预期的次数。这就是您应该测试的全部内容:可以安全地假设该Thread.sleep方法有效;您只需要确保以您期望的方式使用它。
这当然也允许您的测试运行得更快(如果您愿意),因为您的模拟不必等待“真正的”睡眠。
| 归档时间: |
|
| 查看次数: |
2847 次 |
| 最近记录: |