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

发布于 2024-12-27 20:12:37 字数 140 浏览 2 评论 0原文

不知道我应该如何问这个问题,但是当我定义我的模拟对象时,并且在代码中的某个地方尝试将其转换为不同的类型时,测试会抛出我

$Proxy6 cannot be cast to ...

如何解决这个问题?

Not sure how I should be asking the question, but when I define my mock objects, and somewhere in the code it attempts to cast it to a different type the test throws me

$Proxy6 cannot be cast to ...

How does one solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

场罚期间 2025-01-03 20:12:37

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

您可以做的一件事概述如下: 在测试中定义一个接口

如果确实需要模拟它并且您无法执行上述操作,您可以提供自己的实现,该实现可以执行您希望模拟执行的操作,例如记录传入的值、调用的方法、返回您想要的值等,并断言您想要的内容最后需要 - 但这可能需要很多工作。

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

Does this class really need to be mocked? I usually mock services and use concrete classes for value types passed in.

One thing you can do is outlined here: define an interface in your test.

If it really needs to be mocked and you can't do the above you could provide your own implementation which does what you want the mock to do e.g. records values passed in, methods called, returns the values you want etc. and assert what you need at the end - that might be a lot of work though.

Lastly, is this pointing you towards some unidentified interfaces in your design or that the code under test needs some refactoring?

被你宠の有点坏 2025-01-03 20:12:37

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

As always, the test is telling you something about your design. Why is the code trying to cast the object? Could you give us more detail?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文