|
From: Gary P. <gpa...@gm...> - 2009-08-24 08:51:17
|
Simplify the unit tests by correctly using mocks and not needing to wire
up a large object graph.
Signed-off-by: Gary Pampara <gpa...@gm...>
---
.../single/BestParticlePositionTest.java | 27 ++++++++++--------
.../cilib/measurement/single/FitnessTest.java | 26 +++++++++++-------
.../cilib/measurement/single/SolutionTest.java | 28 +++++++++++--------
3 files changed, 47 insertions(+), 34 deletions(-)
diff --git a/src/test/java/net/sourceforge/cilib/measurement/single/BestParticlePositionTest.java b/src/test/java/net/sourceforge/cilib/measurement/single/BestParticlePositionTest.java
index ec200fb..2255338 100644
--- a/src/test/java/net/sourceforge/cilib/measurement/single/BestParticlePositionTest.java
+++ b/src/test/java/net/sourceforge/cilib/measurement/single/BestParticlePositionTest.java
@@ -21,36 +21,39 @@
*/
package net.sourceforge.cilib.measurement.single;
-import net.sourceforge.cilib.entity.EntityType;
-import net.sourceforge.cilib.entity.Particle;
+import net.sourceforge.cilib.algorithm.Algorithm;
import net.sourceforge.cilib.measurement.Measurement;
import net.sourceforge.cilib.problem.InferiorFitness;
-import net.sourceforge.cilib.pso.PSO;
-import net.sourceforge.cilib.pso.particle.StandardParticle;
+import net.sourceforge.cilib.problem.OptimisationSolution;
import net.sourceforge.cilib.util.Vectors;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
*
* @author Gary Pampara
*/
+@RunWith(JMock.class)
public class BestParticlePositionTest {
+ private Mockery mockery = new JUnit4Mockery();
@Test
public void testBestParticlePositionDomain() {
- Particle p = new StandardParticle();
- p.getProperties().put(EntityType.Particle.BEST_POSITION, Vectors.create(4.0));
- p.getProperties().put(EntityType.Particle.BEST_FITNESS, InferiorFitness.instance());
+ final Algorithm algorithm = mockery.mock(Algorithm.class);
+ final OptimisationSolution mockSolution = new OptimisationSolution(Vectors.create(4.0), InferiorFitness.instance());
- PSO pso = new PSO();
- pso.getTopology().add(p);
+ mockery.checking(new Expectations() {{
+ oneOf(algorithm).getBestSolution(); will(returnValue(mockSolution));
+ }});
Measurement measurement = new BestParticlePosition();
- measurement.getValue(pso);
-
- Assert.assertEquals(p.getBestPosition().toString(), measurement.getValue(pso).toString());
+ Assert.assertEquals("[4.0]", measurement.getValue(algorithm).toString());
}
}
diff --git a/src/test/java/net/sourceforge/cilib/measurement/single/FitnessTest.java b/src/test/java/net/sourceforge/cilib/measurement/single/FitnessTest.java
index 26d0229..58b6093 100644
--- a/src/test/java/net/sourceforge/cilib/measurement/single/FitnessTest.java
+++ b/src/test/java/net/sourceforge/cilib/measurement/single/FitnessTest.java
@@ -21,34 +21,40 @@
*/
package net.sourceforge.cilib.measurement.single;
-import net.sourceforge.cilib.ec.EC;
-import net.sourceforge.cilib.ec.Individual;
-import net.sourceforge.cilib.entity.EntityType;
-import net.sourceforge.cilib.entity.Topology;
+import net.sourceforge.cilib.algorithm.Algorithm;
import net.sourceforge.cilib.measurement.Measurement;
import net.sourceforge.cilib.problem.MinimisationFitness;
+import net.sourceforge.cilib.problem.OptimisationSolution;
import net.sourceforge.cilib.type.types.Real;
+import net.sourceforge.cilib.util.Vectors;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
/**
*
* @author Gary Pampara
*/
+@RunWith(JMock.class)
public class FitnessTest {
+ private Mockery mockery = new JUnit4Mockery();
@Test
public void results() {
- EC ec = new EC();
- Topology<Individual> topology = (Topology<Individual>) ec.getTopology();
+ final Algorithm algorithm = mockery.mock(Algorithm.class);
+ final OptimisationSolution mockSolution = new OptimisationSolution(Vectors.create(1.0), new MinimisationFitness(0.0));
- Individual i = new Individual();
- i.getProperties().put(EntityType.FITNESS, new MinimisationFitness(0.0));
- topology.add(i);
+ mockery.checking(new Expectations() {{
+ oneOf(algorithm).getBestSolution(); will(returnValue(mockSolution));
+ }});
Measurement m = new Fitness();
- Assert.assertEquals(0.0, ((Real) m.getValue(ec)).getReal(), 0.00001);
+ Assert.assertEquals(0.0, ((Real) m.getValue(algorithm)).getReal(), 0.00001);
}
}
diff --git a/src/test/java/net/sourceforge/cilib/measurement/single/SolutionTest.java b/src/test/java/net/sourceforge/cilib/measurement/single/SolutionTest.java
index 013da6a..759cb8d 100644
--- a/src/test/java/net/sourceforge/cilib/measurement/single/SolutionTest.java
+++ b/src/test/java/net/sourceforge/cilib/measurement/single/SolutionTest.java
@@ -21,21 +21,24 @@
*/
package net.sourceforge.cilib.measurement.single;
-import net.sourceforge.cilib.ec.EC;
-import net.sourceforge.cilib.ec.Individual;
-import net.sourceforge.cilib.entity.EntityType;
-import net.sourceforge.cilib.entity.Topology;
+import net.sourceforge.cilib.algorithm.Algorithm;
import net.sourceforge.cilib.measurement.Measurement;
+import net.sourceforge.cilib.problem.InferiorFitness;
+import net.sourceforge.cilib.problem.OptimisationSolution;
import net.sourceforge.cilib.type.parser.DomainParser;
import net.sourceforge.cilib.type.parser.ParseException;
import net.sourceforge.cilib.type.types.StringType;
import net.sourceforge.cilib.type.types.container.TypeList;
-import net.sourceforge.cilib.type.types.container.Vector;
import net.sourceforge.cilib.util.Vectors;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -43,20 +46,21 @@ import static org.junit.Assert.assertTrue;
*
* @author Gary Pampara
*/
+@RunWith(JMock.class)
public class SolutionTest {
+ private Mockery mockery = new JUnit4Mockery();
@Test
public void result() {
- Vector target = Vectors.create(1.0);
- Individual i = new Individual();
- i.getProperties().put(EntityType.CANDIDATE_SOLUTION, target);
+ final Algorithm algorithm = mockery.mock(Algorithm.class);
+ final OptimisationSolution mockSolution = new OptimisationSolution(Vectors.create(1.0), InferiorFitness.instance());
- EC ec = new EC();
- Topology<Individual> topology = (Topology<Individual>) ec.getTopology();
- topology.add(i);
+ mockery.checking(new Expectations() {{
+ oneOf(algorithm).getBestSolution(); will(returnValue(mockSolution));
+ }});
Measurement m = new Solution();
- Assert.assertEquals(m.getValue(ec).toString(), target.toString());
+ Assert.assertEquals(m.getValue(algorithm).toString(), mockSolution.getPosition().toString());
}
@Test
--
1.6.4
|