On 28 January 2017 at 21:08, Claude Warren <cla...@xenei.com> wrote:
> I see that RDF Commons is listed as a set of interfaces to be implemented
> on top of various RDF implementations.  I also see that there are abstract
> tests for the interfaces.
>
> I would like to suggest that RDF commons look at using Junit Contract tests
> (https://github.com/Claudenw/junit-contracts) which will ensure that tests
> for all the implemented interfaces are run against the implementing classes.
>
> The strategy for junit-contracts is to create interface tests into which an
> instance of the object being tested is injected.  Implementation test
> suites are created by declaring the class under test and a mechanism to
> create the instance of the class.  The contract-test junit runner then
> locates all tests for all interfaces that are implemented by the class
> under test and runs them (A dynamic suite if you will).
>
> As interface tests are developed they are automatically picked up by the
> suites.  As interfaces are implemented by classes the suites automatically
> pick up existing tests.  The maven plugins (and command line tools) will
> report on the interfaces that don't have tests as well as classes that
> don't have tests suites defined.
>
> Besides the convenience of the system finding the tests to run this
> strategy has several other advantages:
>
> 1.  It allows classes that implement multiple interfaces to have one test
> that tests them all.  Developers no longer have to track down abstract test
> classes across multiple projects and create concrete implementations.
>
> 2.  It allows developers to quickly determine if their implementation
> matches the full contract for the interface.
>
> 3.  It means that refactoring of parent interfaces / classes do not force
> additional coding for the testing of derived classes.
>
> If you are interested I would be glad to help convert existing tests to
> contract tests.

Hi Claude,

The existing abstract tests already fulfill the purposes you describe
using the basic JUnit features.

Cheers,

Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to