Thanks for the suggestion, Claude!

I agree with Stian, do a PR with how the test suite would change, so then
we are discussing about more concrete things.

On Mon, Jan 30, 2017 at 11:20 AM, Stian Soiland-Reyes <st...@apache.org>
wrote:

> On Mon, 30 Jan 2017 09:08:27 +1100, Peter Ansell <ansell.pe...@gmail.com>
> wrote:
> > Hi Claude,
> > Abstract test classes are working well for Commons RDF so far. Others
> > may benefit from your solution, so feel free to suggest the approach
> > to others who may be interested in exploring it.
>
> I would not dismiss Claude's suggestion out of hand. Apache Commons is
> for anyone who wants to participate! :-)
>
> Claude  - if you would like to have a go in a branch at what Commons RDF
> tests look like using contract testing, then feel free!
>
> >> https://www.linkedin.com/pulse/contract-testing-why-
> abstract-tests-enough-claude-warren-jr
>
> I liked this blog article which explains the problem. We in a way
> already have this problem twice in Commons RDF tests because we have the
> Triple/Quad duality (TripleLike) and Graph/Dataset duality (GraphLike)
> as well as the multiple implementations of the commons-rdf-api
> interfaces.
>
> So you will notice some of those tests have considerable duplication
> with subtle differences, e.g. along the lines of:
>
>
>     graph.add(triple);
>     assertTrue(graph.contains(triple)
>     assertTrue(graph.contains(triple.getSubject(),
>         triple.getPredicate(), triple.getObject());
>
> vs
>
>     dataset.add(quad);
>     assertTrue(dataset.contains(quad));
>     assertTrue(dataset.contains(quad.getGraphName(),
>       quad.getSubject(), quad.getPredicate(), quad.getObject());
>
> This could in theory be harmonized so that there's a single abstract
> test class with an abstract method to make the triple/quad - and then
> extensions for Triple and Quad that adds the last decomposition
> assertion.
>
> But as we already use abstract classes to run the tests per RDF
> implementation, and so I thought it would get messy to try to reorganize
> it.
>
>
> Another thing is that now the tests are munged together
> into mainly AbstractRDFTest (which must create an RDF factory instance,
> that then can create the other things) - otherwise you will have to
> make many SomethingImplTest in each module (and easily forget to
> specialize one of the tests in one of the modules)
>
> With your approach, would you still have to make a such specialization,
> or is that automatic?
>
>
> BTW - in your approach, would it work to run the tests out of the box
> from an IDE like Eclipse? I think that is quite important so Commons RDF
> can be maintainable by many people in Apache Commons.
>
>
>
>
> --
> Stian Soiland-Reyes
> University of Manchester
> http://www.esciencelab.org.uk/
> http://orcid.org/0000-0001-9842-9718
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
Sergio Fernández
Partner Technology Manager
Redlink GmbH
m: +43 6602747925
e: sergio.fernan...@redlink.co
w: http://redlink.co

Reply via email to