2
我有一個junit測試類。測試類讀取一個文件並向telnet服務器發送一條消息。根據消息的no號,處理可能需要1個小時到5個小時文件。我希望此測試類在屬性文件中配置一定時間後停止。下面是我的代碼。Junit想要在一定的時間後停止方法
public void sendMessage() throws InterruptedException {
final long timetorun = Long.valueOf(props.getMap().get("timetorun"))
.longValue();
try {
System.out.println("duration : " + duration);
while (duration < timetorun) {
endTime = System.currentTimeMillis();
duration = endTime - startTime;
logger.info("Sending Message");
telnetUtils.run(telnetClient);
// sendMessage();
}
} catch (Exception e) {
e.printStackTrace();
}
}
假設timetorun是1小時 這裏的問題是,如果telnetUtils.run(telnetClient);需要超過1小時,這種邏輯將無法工作。
任何人都可以提供一些幫助,如何實現這一點。
+1您可以將1000更改爲最終值。更好的解決方案是使用超時規則,因爲那樣你可以使用非最終值。 –
事實上,超時規則好得多。我們每天都會學到一些東西:)。 @hanmayya,看看[這個](http://kentbeck.github.com/junit/javadoc/4.10/org/junit/rules/Timeout.html) – Alban