|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.junit.rules.Stopwatch
public class Stopwatch
The Stopwatch Rule notifies one of its own protected methods of the time spent by a test.
Override them to get the time in nanoseconds. For example, this class will keep logging the time spent by each passed, failed, skipped, and finished test:
public static class StopwatchTest {
private static final Logger logger = Logger.getLogger("");
private static void logInfo(Description description, String status, long nanos) {
String testName = description.getMethodName();
logger.info(String.format("Test %s %s, spent %d microseconds",
testName, status, TimeUnit.NANOSECONDS.toMicros(nanos)));
}
@Rule
public Stopwatch stopwatch = new Stopwatch() {
@Override
protected void succeeded(long nanos, Description description) {
logInfo(description, "succeeded", nanos);
}
@Override
protected void failed(long nanos, Throwable e, Description description) {
logInfo(description, "failed", nanos);
}
@Override
protected void skipped(long nanos, AssumptionViolatedException e, Description description) {
logInfo(description, "skipped", nanos);
}
@Override
protected void finished(long nanos, Description description) {
logInfo(description, "finished", nanos);
}
};
@Test
public void succeeds() {
}
@Test
public void fails() {
fail();
}
@Test
public void skips() {
assumeTrue(false);
}
}
An example to assert runtime:
@Test
public void performanceTest() throws InterruptedException {
long delta = 30;
Thread.sleep(300L);
assertEquals(300d, stopwatch.runtime(MILLISECONDS), delta);
Thread.sleep(500L);
assertEquals(800d, stopwatch.runtime(MILLISECONDS), delta);
}
| Constructor Summary | |
|---|---|
Stopwatch()
|
|
| Method Summary | |
|---|---|
Statement |
apply(Statement base,
Description description)
Modifies the method-running Statement to implement this
test-running rule. |
protected void |
failed(long nanos,
Throwable e,
Description description)
Invoked when a test fails |
protected void |
finished(long nanos,
Description description)
Invoked when a test method finishes (whether passing or failing) |
long |
runtime(TimeUnit unit)
Gets the runtime for the test. |
protected void |
skipped(long nanos,
AssumptionViolatedException e,
Description description)
Invoked when a test is skipped due to a failed assumption. |
protected void |
succeeded(long nanos,
Description description)
Invoked when a test succeeds |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Stopwatch()
| Method Detail |
|---|
public long runtime(TimeUnit unit)
unit - time unit for returned runtime
protected void succeeded(long nanos,
Description description)
protected void failed(long nanos,
Throwable e,
Description description)
protected void skipped(long nanos,
AssumptionViolatedException e,
Description description)
protected void finished(long nanos,
Description description)
public final Statement apply(Statement base,
Description description)
TestRuleStatement to implement this
test-running rule.
apply in interface TestRulebase - The Statement to be modifieddescription - A Description of the test implemented in base
base,
a wrapper around base, or a completely new Statement.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||