How to test a generic class?

42 views
Skip to first unread message

Vincent Privat

unread,
Mar 14, 2016, 8:17:06 AM3/14/16
to equalsverifier
Hi,
I'm using EqualsVerifier 2.0.1 for several classes already, but I face an error I don't know how to solve.
I want to test a generic class which looks like that:

public class Storage<T> extends AbstractSet<T>

My equals() method calls super.equals().

When running

        EqualsVerifier.forClass(Storage.class).usingGetClass().verify();

I got this error:

java.lang.AssertionError: Abstract delegation: AbstractSet's equals method delegates to an abstract method:
 null
at nl.jqno.equalsverifier.EqualsVerifier.handleError(EqualsVerifier.java:381)
at nl.jqno.equalsverifier.EqualsVerifier.verify(EqualsVerifier.java:367)
at org.openstreetmap.josm.data.osm.StorageTest.equalsContract(StorageTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.AbstractMethodError
at java.util.AbstractSet.equals(AbstractSet.java:92)
at nl.jqno.equalsverifier.AbstractDelegationChecker.checkAbstractMethods(AbstractDelegationChecker.java:129)
at nl.jqno.equalsverifier.AbstractDelegationChecker.checkAbstractDelegationInSuper(AbstractDelegationChecker.java:115)
at nl.jqno.equalsverifier.AbstractDelegationChecker.check(AbstractDelegationChecker.java:55)
at nl.jqno.equalsverifier.EqualsVerifier.verifyWithoutExamples(EqualsVerifier.java:405)
at nl.jqno.equalsverifier.EqualsVerifier.performVerification(EqualsVerifier.java:391)
at nl.jqno.equalsverifier.EqualsVerifier.verify(EqualsVerifier.java:364)
... 24 more

Any hint?

Jan Ouwens

unread,
Mar 14, 2016, 12:10:13 PM3/14/16
to equalsv...@googlegroups.com, Vincent Privat
Hi Vincent,

You’ve found a bug in EqualsVerifier, one which has been present since at least version 1.1.4 (which happens to be the earliest version available on Maven Central). Unfortunately, I can’t give you a workaround for this one, either.

Could you open a ticket on GitHub for this?
Unfortunately, I won’t be able to fix this as quickly as last time, though.

Jan
--
You received this message because you are subscribed to the Google Groups "equalsverifier" group.
To unsubscribe from this group and stop receiving emails from it, send an email to equalsverifie...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Vincent Privat

unread,
Mar 14, 2016, 12:11:14 PM3/14/16
to Jan Ouwens, equalsv...@googlegroups.com
OK thanks! Let's continue to Github then :)
Reply all
Reply to author
Forward
0 new messages