[英]How to define JUnit test time-out at runtime (i.e. without annotations)?
[英]Checking for a time-out in a JUnit test case
我有一個JUnit測試用例,我希望特定的方法調用花費很長時間(超過一分鍾)。 我想要
我該怎么做呢?
你可以編寫一個實現runnable的類來包裝感興趣的方法; 假設允許生成線程。
public class CallMethod implements Runnable
{
//time in milli
public long getStartTime()
{
return startTime;
}
//time in milli
public long getEndTime()
{
return endTime;
}
public void run()
{
startTime = ...;
obj.longRunningMethod();
endTime = ...;
}
}
然后在您的JUnit中,您可以執行以下操作:
public void testCase1()
{
CallMethod call = new CallMethod();
Thread t = new Thread(call);
t.start();
t.join(60000); // wait one minute
assertTrue(t.alive() || call.getEndTime() - call.getStartTime() >= 60000);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.