如何JUnit测试对象的不变性?

发布于 2024-10-27 12:20:32 字数 134 浏览 0 评论 0原文

我有一个与此类似的方法

public void method(final Object A){ .... }

,现在我想编写一个测试来确保对象 A 始终是最终的。我该如何编写这样的测试?

I have a method similar to this

public void method(final Object A){ .... }

now I want to write a test which ensures Object A is always final. How do I write such test ?

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

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

发布评论

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

评论(1

若相惜即相离 2024-11-03 12:20:32

恐怕你不明白你的方法是做什么的。方法中的最终参数仅意味着该参数不能在方法中重新分配。

 public void doStuff( String s ){
     s = "OK";
 }

 public void doStuff( final String s ){
     s = "ERROR s cannot be assigned because it is final!";//causes error
 }

因此,没有可以测试的行为。如果无效,则无法编译。


编辑:如果您希望对最终进行单元测试,我也不可能这样做,因为我相信一旦内部检查,信息就会在编译时丢失。

I'm afraid you do not understand what your method does. A final parameter in a method means only that the parameter cannot be reassigned in the method.

 public void doStuff( String s ){
     s = "OK";
 }

but

 public void doStuff( final String s ){
     s = "ERROR s cannot be assigned because it is final!";//causes error
 }

As such, there is no behaviour that can test for. If it is not valid it will not compile.


Edit: If you want you unit test for a final I don't that is possible either since I believe that information is lost at time of compilation once it is checked internally.

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