在Java中为接口添加不变量

时间:2010-07-22 15:21:08

标签: java unit-testing annotations interface invariants

我一直在考虑创建一个允许程序员在接口上指定不变量(前置条件和后置条件)的Java框架。目的是使代码更加健壮,并减少需要为同一接口的不同实现编写的单元测试的数量。

我设想创建一些使用程序员也会编写的不变量来注释方法的方法。例如。

interface Sort {
    int [] sort(int [] nums);
}

将使用注释进行修饰,以确保任何实现都返回已排序的列表。此注释将链接到可以在编译时针对任何实现运行的单元测试。

这是一个疯狂的想法还是对更广泛的编程社区有用?

4 个答案:

答案 0 :(得分:4)

这听起来可能与JMLESC/Java有关,两者都在需要比软件质量更高的软件质量的项目中得到了相当广泛的采用。通常的一套技术。

答案 1 :(得分:2)

答案 2 :(得分:1)

我认为Bertrand Meyer的合约创意编程基本上已经死了。他为埃菲尔建立了前后条件,但这种语言在使用规模上低于拉丁语。

那里有合同库的Java编程; Contractor就是一个。但它的日子已经过去了。事实是,即使是埃菲尔也有办法在生产中关闭它们,因为运行时成本并不值得获益。

Stack Overflow上只有6个Eiffel问题 - 确实只有一小部分。如果你在其中搜索带有“合同”的SO标签,你会看到一个非常小的数字。对本网站的主题不太感兴趣。它声称吸引了世界上最大的专业程序员。

答案 3 :(得分:0)

什么伟大的编程理念不是疯了!!!我绝对认为这会有用。