【发布时间】:2015-02-16 07:40:02
【问题描述】:
我想编写一些单元测试并且必须创建或模拟在我的程序中使用的对象。我想知道是否有任何工具可以在实际运行期间捕获和记录我的程序的对象并将它们用于单元测试(与端到端测试中的 Selenium Recorder 相同)?
【问题讨论】:
标签: unit-testing testing junit mocking tdd
我想编写一些单元测试并且必须创建或模拟在我的程序中使用的对象。我想知道是否有任何工具可以在实际运行期间捕获和记录我的程序的对象并将它们用于单元测试(与端到端测试中的 Selenium Recorder 相同)?
【问题讨论】:
标签: unit-testing testing junit mocking tdd
我从未听说过这样的工具。你必须自己写。
您可以依赖应用程序的持久层:
您可能会对databene-benerator 之类的工具感兴趣
它是一个框架,用于为您的被测系统生成真实有效的大量测试数据
【讨论】:
jtor 看起来很有趣
我不得不在没有任何测试的情况下重构一个大型(生产)代码库,不幸的是什么也没找到,所以我不得不自己开发一个工具。主要目标是可扩展性(在每个分析阶段插入的能力)和质量(单元测试的高代码覆盖率)。
因此,任何正在寻找此类工具的人都可以尝试testrecorder。有几种方法可以根据实际使用情况生成测试。最简单的可能是使用callsite recorder:
try (CallsiteRecorder recorder = new CallsiteRecorder(ExampleObject.class.getDeclaredMethod("inc"))) {
printTest(recorder.record(() -> {
int doubleInc = exampleObject.inc().inc().get();
System.out.println(doubleInc);
}));
printTest(recorder.record(() -> {
int resetInc = exampleObject.reset().inc().get();
System.out.println(resetInc);
}));
}
【讨论】: