Java JUnit: The method X is ambiguous for type Y

compiler-errors, java, junit, package, testing

Solution

The method assertEquals(Object, Object) is ambiguous for the type ...

What this error means is that you're passing a `double` and and `Double` into a method that has two different signatures: `assertEquals(Object, Object)` and `assertEquals(double, double)` both of which could be called, thanks to autoboxing.

To avoid the ambiguity, make sure that you either call `assertEquals(Object, Object)` (by passing two Doubles) or `assertEquals(double, double)` (by passing two doubles).

So, in your case, you should use:

assertEquals(Double.valueOf(70), eccen.get("alpha"));

Or:

assertEquals(70.0d, eccen.get("alpha").doubleValue());

Problem

I had some tests working fine. Then, I moved it to a different package, and am now getting errors. Here is the code: ``` import static org.junit.Assert.*; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.jgrapht.Graphs; import org.jgrapht.WeightedGraph; import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.SimpleWeightedGraph; import org.junit.*; @Test public void testEccentricity() { WeightedGraph<String, DefaultWeightedEdge> g = generateSimpleCaseGraph(); Map<String, Double> eccen = JGraphtUtilities.eccentricities(g); assertEquals(70, eccen.get("alpha")); assertEquals(80, eccen.get("l")); assertEquals(130, eccen.get("l-0")); assertEquals(100, eccen.get("l-1")); assertEquals(90, eccen.get("r")); assertEquals(120, eccen.get("r-0")); assertEquals(130, eccen.get("r-1")); } ``` The error message is this: The method assertEquals(Object, Object) is ambiguous for the type JGraphtUtilitiesTest How can I fix this? Why did this problem occur as I moved the class to a different package?

Original source

Related problems