我们可以使用什么样的模拟框架来模拟一个类或者它的对象呢?我们通常在实现junit测试用例的时候使用模拟框架,但是我怎么样才能模拟一个类或者它的对象呢?不是在任何测试用例类中,而是在一个普通的类中。有可能这样做吗?
6yt4nkrj1#
虽然模拟框架通常只在测试代码中完成,但这不是必需的。你当然可以导入你喜欢的模拟框架作为编译(而不是测试)依赖,然后在任何src/main/java类中,你就可以用正常的方式构建模拟(例如@Mock等)。我不知道你为什么要这么做。这里面有一个更有趣的问题。实现模拟框架是通过反射操作的,有时候是通过字节码操作。这对生产质量的代码提出了一些问题,但是现在你在主线源代码中有了它。根据你真正想要完成的,可能有更好的方法--例如解封装、AOP、存根等。
1条答案
按热度按时间6yt4nkrj1#
虽然模拟框架通常只在测试代码中完成,但这不是必需的。你当然可以导入你喜欢的模拟框架作为编译(而不是测试)依赖,然后在任何src/main/java类中,你就可以用正常的方式构建模拟(例如@Mock等)。
我不知道你为什么要这么做。这里面有一个更有趣的问题。实现模拟框架是通过反射操作的,有时候是通过字节码操作。这对生产质量的代码提出了一些问题,但是现在你在主线源代码中有了它。根据你真正想要完成的,可能有更好的方法--例如解封装、AOP、存根等。