NullPointerException lors de l'exécution de tests JUnit, en disant: l'interface est nulle

Je suis en train d'écrire un programme java qui permet à l'utilisateur d'entrer une série de valeurs de données, puis pour le programme de tri à travers la recherche de la moyenne et de la médiane de cette série, à l'aide d'une interface de "traiter" les différents objets comme s'ils étaient les mêmes. Cependant, quand je lance mon test JUnit, il arrête pas de dire que mon interface est nulle.

NoiseFilter.java

package noisefilter.model;

import java.util.ArrayList;

public interface NoiseFilter {

public double getBestMesurement(ArrayList<Double> samples);

}

AveragingFilter.java

package noisefilter.model;

import java.util.ArrayList;

public class AveragingFilter implements NoiseFilter {

@Override
/**
 * The method getBestMeasurement takes an array list of type double and returns a
 */
public double getBestMesurement(ArrayList<Double> samples) {
    //TODO Auto-generated method stub

    if (samples.equals(null)) {
        throw new IllegalArgumentException("The Samples cannot be null");
    }
    if (samples.size() < 3) {
        throw new IllegalArgumentException("The Sample size must have 3");
    }
    double sum = 0.0;
    for (Double number : samples) {
        sum += number;
    }

    return (sum / samples.size());
}

}

SensorData.java

package noisefilter.model;

import java.util.ArrayList;

public class SensorData implements NoiseFilter {

ArrayList<Double> data;
NoiseFilter filter;

public SensorData() {
    this.data = new ArrayList<Double>();
    this.filter = null;
}

public void addSample(double sample) {
    data.add(sample);
}

public void setFilter(NoiseFilter filterVar) {
    this.filter = filterVar;
}

public double getFilteredResult() {
    if (filter.equals(null)) {
        throw new IllegalStateException("The filter cannot be left null");
    }
    return filter.getBestMesurement(data);
}

@Override
public double getBestMesurement(ArrayList<Double> samples) {

    samples = this.data;
    return 0;
}

WhenAveragingFilter.java (Test Unitaire)

package noisefilter.tests;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

import noisefilter.model.NoiseFilter;
import noisefilter.model.SensorData;

public class WhenAverageFiltering {

NoiseFilter filter;
SensorData dataSet;


@Before
public void setUp() throws Exception {
    this.dataSet = new SensorData();
    dataSet.setFilter(filter);
}

@Test
public void averageOfThree100sShouldBe100() {
    dataSet.addSample(100);
    dataSet.addSample(100);
    dataSet.addSample(100);

    assertTrue(dataSet.getFilteredResult() == 100);
}

@Test
public void averageOfThreeDifferent() {
    dataSet.addSample(120);
    dataSet.addSample(140);
    dataSet.addSample(130);

    assertTrue(dataSet.getFilteredResult() == 130);
}

@Test
public void averageOfFiveDifferent() {
    dataSet.addSample(10);
    dataSet.addSample(50);
    dataSet.addSample(60);

    assertTrue(dataSet.getFilteredResult() == 40);
}

}

Voici les erreurs que j'obtiens quand je lance le Test JUnit.

java.lang.NullPointerException
at noisefilter.model.SensorData.getFilteredResult(SensorData.java:24)
at     noisefilter.tests.WhenAverageFiltering.averageOfFiveDifferent(WhenAverageFiltering.java:47)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
InformationsquelleAutor Ashton | 2013-09-12