我想运行一个单元测试,并收集它的“分析”信息:每个方法被调用的频率,某些类的实例创建了多少个,执行某个方法/线程花费了多少时间等等。然后,我想将这些信息与一些期望值进行比较。是否有Java的分析工具可以让我自动完成所有这些操作(当然不需要任何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)
);
}
}