我想运行一个单元测试并收集它的“分析”信息:每个方法被调用的频率、某个类的多少个实例被创建、执行某个方法/线程需要多少时间等等。然后,我想要将此信息与一些预期值进行比较。是否有任何适用于 Java 的 Profiler 可以让我这样做(当然,所有这些都应该自动完成,无需任何 GUI 或用户交互)?
这就是我希望它的工作方式:
public class MyTest {
@Test
public void justTwoCallsToFoo() {
Profiler.start(Foo.class);
Foo foo = new Foo();
foo.someMethodToProfile(); // profiler should collect data here
assertThat(
Profiler.getTotalCallsMadeTo(Foo.class, "barMethod"),
equalTo(3)
);
}
}