【发布时间】:2012-07-16 23:32:26
【问题描述】:
我正在使用 JUnit 测试一个类,比如说 MyClass。我正在使用 easymock 来隔离对 db 的需求。它工作正常。因此,如果有对模型对象的调用,我只是模拟该对象。 例如。如果我有
public void method(Project project) { project.getName(); ..}
在 MyClass 中,我只使用 mockedProject。然后我说 MyClass.method(mockedProject); 但是如果我在 MyClass 中有 this.getName() 怎么办。在这种情况下,由于我想要我正在测试的类(MyClass)的真实对象,我无法模拟 MyClass 对象。所以我不能为 MyClass 对象定义返回值,因为它是一个真实的对象。请记住,getName() 会扔掉我不希望它扔掉的数据库。
当我有 this.method() 并且该方法与 db 一起使用时,在这种情况下我应该怎么做。 我无法模拟我正在测试的这个对象。 谢谢。
【问题讨论】:
-
你能告诉我们访问数据库的方法吗?