JMock,当模拟对象被转换为具体类时,你应该怎么做?

时间:2012-01-18 19:07:50

标签: unit-testing mocking jmock

不确定我应该如何提出这个问题,但是当我定义我的模拟对象时,在代码中的某处,它会尝试将其转换为其他类型,测试会抛出我

$Proxy6 cannot be cast to ...

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

这个课真的需要被嘲笑吗?我通常模拟服务并使用传递的值类型的具体类。

您可以做的一件事就是:define an interface in your test

如果它真的需要被嘲笑而且你不能做到这一点,你可以提供你自己的实现,它可以做你想让模拟做的事情,例如:传入的记录值,被调用的方法,返回你想要的值等等,并在最后断言你需要的东西 - 虽然这可能是很多工作。

最后,这是否指向您设计中的某些未识别的接口或者测试中的代码需要进行一些重构?

答案 1 :(得分:0)

与往常一样,测试告诉您有关您设计的信息。为什么代码试图转换对象?你能告诉我们更多细节吗?