Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Unit Test Code

ArrayUtils.java - imports and start of class
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.celestial.tdd.demo.v1;

import static org.hamcrest.CoreMatchers.is;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.Rule;
import org.junit.rules.ExpectedException;

/**
 *
 * @author Selvyn
 */
public class ArrayUtilsTest
{
   ...

Iteration 1

ArrayUtilsTest.java - iteration 1
public class ArrayUtilsTest
{
    @Test
    public void find_highest_in_array_of_one()
    {
        // Arrange
        int array[] =
        {
            10
        };
        ArrayUtils arrayUtils = new ArrayUtils();

        // Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(10));
    }
}

CUT

ArrayUtils .java - iteration 1
class ArrayUtils
{
    // Version 1 for find_highest_in_array_of_one()
    int findHighest(int[] array)
    {
        return array[0];
    }
}


Iteration 2

ArrayUtilsTest.java - iteration 2
public class ArrayUtilsTest
{
    @Test
    public void find_highest_in_array_of_one()
    {
        // Arrange
        int array[] =
        {
            10
        };
        ArrayUtils arrayUtils = new ArrayUtils();

        // Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(10));
    }

    @Test
    public void find_highest_in_array_of_two_pre_ordered()
    {
        // Arrange
        int array[] =
        {
            20, 10
        };
        ArrayUtils arrayUtils = new ArrayUtils();
        int expectedResult = 20;

        //Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(expectedResult));
    }

    @Test
    public void find_highest_in_array_of_two_ascending()
    {
        // Arrange
        int array[] =
        {
            10, 20
        };
        ArrayUtils arrayUtils = new ArrayUtils();
        int expectedResult = 20;

        //Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(expectedResult));
    }
}

CUT

ArrayUtils.java - iteration 2
class ArrayUtils
{
    // Version 2 for find_highest_in_array_of_two_...()
    public  int findHighest(int array[])
    {
        int highestSoFar = array[0];
        
        if( array.length > 1 && array[1] > highestSoFar )
            highestSoFar = array[1];
        
        return highestSoFar;
    }
}

Iteration 3

ArrayUtilsTest.java - iteration 3
public class ArrayUtilsTest
{
    public ArrayUtilsTest()
    {
    }

    @Before
    public void setUp()
    {
    }

    @Test
    public void find_highest_in_array_of_one()
    {
        // Arrange
        int array[] =
        {
            10
        };
        ArrayUtils arrayUtils = new ArrayUtils();

        // Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(10));
    }

    @Test
    public void find_highest_in_array_of_two_pre_ordered()
    {
        // Arrange
        int array[] =
        {
            20, 10
        };
        ArrayUtils arrayUtils = new ArrayUtils();
        int expectedResult = 20;

        //Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(expectedResult));
    }

    @Test
    public void find_highest_in_array_of_two_ascending()
    {
        // Arrange
        int array[] =
        {
            10, 20
        };
        ArrayUtils arrayUtils = new ArrayUtils();
        int expectedResult = 20;

        //Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(expectedResult));
    }

    @Test
    public void find_highest_in_array_of_any_number()
    {
        // Arrange
        int array[] =
        {
            10, 5, 30
        };
        ArrayUtils arrayUtils = new ArrayUtils();
        int expectedResult = 30;

        //Act
        int result = arrayUtils.findHighest(array);

        // Assert
        assertThat(result, is(expectedResult));
    }
}

CUT 

ArrayUtils.java - iteration 3
class ArrayUtils
{
    // Version 3 for find_highest_in_array_of_any_number()
    public  int findHighest(int array[])
    {
        int highestSoFar = Integer.MIN_VALUE;  // it could be argued that it should be array[0], to restrict numbers to within that which is passed in
        
        for (int i = 0; i < array.length; i++) 
        {
            if (array[i] > highestSoFar) 
		highestSoFar = array[i];
        }
        
        return highestSoFar;
    }
}


  • No labels