I think the idea is great and I saw the presentation. In fact I was keen to try in out straight away on a java project with JUnit+JMock. The package that I was trying contract test on was about conversion of data. I had several data converter implementations that has common generic interface Converter<original, converted="">. What I did is set up an Abstract JUnit test for my Converter interface to test all the common bounds of functionality. After that for each of the concrete implementations of the converter I have created a JUnit test that is inherited from the AbstractConverterTest.
So in basics the AbstractConverter had all the tests but the creation of the instance was delegated to the inheriting test through abstract method getInstance(). This worked FANTASTIC - I could see how some of the converters that I had do not confirm to the contracts.
My first impression of the Contract test was "This is quite an overhead to make it in this way", but my little investigation really showed that it pays off.
The only downside that I have faced is that abstracting the getInstance method, does not always play nice with mocked objects, since you have to set the expectations for them. I know that this is kind of JMock specifics but do you have any best practices advise on that?