如何模拟对象?

时间:2010-03-15 12:42:03

标签: java

如果要测试的类是抽象的,如何模拟测试对象?你不能从中实例化吗?

3 个答案:

答案 0 :(得分:3)

Mocking正在创建一个接口或抽象类的模拟实现,很少是具体的类。您可以使用模拟框架在运行时创建这些模拟:

答案 1 :(得分:2)

如果你想测试抽象类的常见实现,那么你应该在测试子系统中创建一个虚拟的具体实现,然后单元测试该类的常用方法。

另一方面,如果你需要传递对抽象类的引用,那么,正如Bozho所建议的那样,你应该使用一个模拟框架。我最喜欢的是JMock

答案 2 :(得分:1)

正如Paddy所提到的,你真的想测试一个具体的课程。

但是,如果要测试抽象类提供的功能,执行此操作的常用方法是使用abstract方法创建TestCase abstract以提供具体类然后测试AbstractWhateverTestCase中的常用功能。

有关示例,请参阅http://c2.com/cgi/wiki?AbstractTestCases