2016-11-10 3 views
0

Ich habe eine Klasse-Rechner mit den vier Grundoperationen der Addition, Subtraktion, Dividieren und MultiplizierenWie verwende ich JUnit assertThat korrekt?

public class Calculator{ 

     public int add(int a, int b) { 
      return a + b; 
     } 

     public int subtract(int a, int b) { 
      return a - b; 
     } 

     public double multiply(double a, double b) { 
      return a * b; 
     } 

     public double divide(double a, double b) { 
      if (b == 0) { 
       throw new ArithmeticException("Division by zero."); 
      } 
      return a/b; 
     } 

    } 

Ich bin mit einem Maven-Projekt und meine pom.xml Datei mit dem Namen:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>br.usp.icmc</groupId> 
    <artifactId>Calculadora</artifactId> 
    <version>0.0.1</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.hamcrest</groupId> 
      <artifactId>hamcrest-library</artifactId> 
      <version>1.3</version> 
     </dependency> 
    </dependencies> 
</project> 

I einen Test in JUnit wie folgt erstellt:

public void testSumWithAssertThat() { 
     int expectedValue = 2; 
     int returnedValue = calculator.add(1, 1);  
     assertThat(returnedValue, is(expectedValue)); 
    } 

ich die folgende Ausnahme erhalten:

Warum werfen Sie eine Ausnahme? Was läuft mit diesem einfachen Code falsch?

+1

lesen Sie hier http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertThat(java.lang.String, T, org.hamcrest.Matcher) – DimaSan

Antwort

1

Stellen Sie sicher, dass hamcrest.jar vor der JUnit-Bibliothek ist im Classpath enthalten wird das Problem behebt.

Verwandte Themen