程序包 org.junit.rules
类 Stopwatch
- java.lang.Object
- org.junit.rules.Stopwatch
- 所有已实现的接口:
TestRule
public abstract class Stopwatch extends Object implements TestRule
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); }
- 从以下版本开始:
- 4.12
构造器概要
构造器 构造器 说明 Stopwatch()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 Statement
apply(Statement base, Description description)
Modifies the method-runningStatement
to implement this test-running rule.protected void
failed(long nanos, Throwable e, Description description)
Invoked when a test failsprotected 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
构造器详细资料
Stopwatch
public Stopwatch()
方法详细资料
runtime
public long runtime(TimeUnit unit)
Gets the runtime for the test.- 参数:
unit
- time unit for returned runtime- 返回:
- runtime measured during the test
succeeded
protected void succeeded(long nanos, Description description)
Invoked when a test succeeds
failed
protected void failed(long nanos, Throwable e, Description description)
Invoked when a test fails
skipped
protected void skipped(long nanos, AssumptionViolatedException e, Description description)
Invoked when a test is skipped due to a failed assumption.
finished
protected void finished(long nanos, Description description)
Invoked when a test method finishes (whether passing or failing)
apply
public final Statement apply(Statement base, Description description)
从接口复制的说明:TestRule
Modifies the method-runningStatement
to implement this test-running rule.- 指定者:
apply
在接口中TestRule
- 参数:
base
- TheStatement
to be modifieddescription
- ADescription
of the test implemented inbase
- 返回:
- a new statement, which may be the same as
base
, a wrapper aroundbase
, or a completely new Statement.