用Java1.4模拟

用Java1.4模拟,java,mocking,Java,Mocking,在Java1.4中,是否存在允许模拟具体类而不仅仅是接口的框架?我有一个单例类的第三方代码,我想在不接触原始代码的情况下更改一个函数。可能吗?我推荐Mockito。Java 1.4的端口是。JMock 1.2支持这一点。详细信息。我可以在不进行单元测试的情况下使用JMock吗?如我所见,我需要扩展类MockObjectTestCase?在我的情况下,使用单元测试是非常不方便的……您不需要使用单元测试,但需要运行某些方法。我还没有试过,但是你可以检查MockObjectTestCase的源代码,看

在Java1.4中,是否存在允许模拟具体类而不仅仅是接口的框架?我有一个单例类的第三方代码,我想在不接触原始代码的情况下更改一个函数。可能吗?

我推荐Mockito。Java 1.4的端口是。

JMock 1.2支持这一点。详细信息。

我可以在不进行单元测试的情况下使用JMock吗?如我所见,我需要扩展类MockObjectTestCase?在我的情况下,使用单元测试是非常不方便的……您不需要使用单元测试,但需要运行某些方法。我还没有试过,但是你可以检查MockObjectTestCase的源代码,看看它是否有什么特殊的功能需要单独调用。是否可以模拟某个类,以便模拟某个类在某个时刻之后创建的所有实例化?我知道这在jmockit中是可能的,但它只适用于较新的java。@Filip,我不认为JMock天生就支持这样的概念。当然,你可以通过让工厂生产带有逻辑的对象来伪造它。AFAIK这样一个特性需要类加载器干预,这使得在生产系统中运行非常困难;当(myClass.returnsInt()).thenReturn(??)然后返回仅返回一个对象。Java1.5中的自动装箱/取消装箱没有问题,但我不知道如何在Java1.4中解决这个问题。如果我写
when(myClass.returnsInt()).thenReturn(新整数(1))
看起来Mockito在调用
returnsInt()
时将整数转换为一个基本整数,一切都“正常工作”。