Search code examples
javaeclipsejunit

Using assertArrayEquals in unit tests


My intention is to use assertArrayEquals(int[], int[]) JUnit method described in the API for verification of one method in my class.

But Eclipse shows me the error message that it can't recognize such a method. Those two imports are in place:

import java.util.Arrays;
import junit.framework.TestCase;

Did I miss something?


Solution

  • This would work with JUnit 5:

    import static org.junit.jupiter.api.Assertions.*;
    
    assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
    

    This should work with JUnit 4:

    import static org.junit.Assert.*;
    import org.junit.Test;
     
    public class JUnitTest {
     
        /** Have JUnit run this test() method. */
        @Test
        public void test() throws Exception {
     
            assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
     
        }
    }
    

    This is the same for the old JUnit framework (JUnit 3):

    import junit.framework.TestCase;
    
    public class JUnitTest extends TestCase {
      public void test() {
        assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
      }
    }
    

    Note the difference: no Annotations and the test class is a subclass of TestCase (which implements the static assert methods).