J-блок с Java - PullRequest
       1

J-блок с Java

0 голосов
/ 25 сентября 2018

Я пытаюсь создать j-юнит-тесты для каждой функции ниже, но я не знаю, с чего начать.В моем случае очень трудно использовать саму функцию и проверить ее в корпусе устройства.Я только знаю, как проверить конкретные значения / списки.Мне нужна помощь с пониманием, как проверить сами функции.

public class FindValues {           
    /**
     * @param args
     */
    public static void main(String[] args) {        
        int[] x = new int[] {2,5,6};
        int y = 2;
        findLast(x, y);
        int[] x1 = new int[] {1,2,0};
        lastZero(x1,y);
        int[] x2  = new int[] {-3, 3, 5, 0};
        countPositive(x2,y);
        int[] x3  = new int[] {-6, 2, -1, 1};
        oddOrPos(x3);
    }   

    // findlast(int [] x, int y) takes an array of integers and should return the index of
    // the last element in the array that is equal to y.
    public static int findLast(int [] x, int y) {
        x = new int[]{2,5,6};
        y = 2;
        for (int i=x.length-1; i >= 0; i--) { 
            if (x[i] == y) { 
                // System.out.println(i);
                return i;
            } 
        }
        return -1;          
    } //end FindLast

// lastZero(int [] x) takes an array of integers and should return the index of the last//0 in x.
    public static int lastZero (int[] x, int y) {
        x = new int[]{1,2,0};
        for (int i = 0; i < x.length; i++)
        {
            if (x[i] == 0)
            {
                System.out.println(i);
            }
        }
        return -1;
    }

    public static int countPositive (int[] x, int y) {
        //Returns the number of positive elements in Xint count = 0;
        x = new int[]{-3, 3, 5, 0};
        int count = 0;
        for (int i=0; i < x.length; i++) {
            if (x[i] > 0) {
                count++;
            }
        }
        System.out.println(count);
        return count;           
    }

    public static int oddOrPos(int[] x) {
        //Return numbers in x that are either odd or positive or both int count = 0;
        int count = 0;
        x = new int[]{-6, 2, -1, 1};
        for (int i = 0; i < x.length; i++) {
            if (x[i]% 2 == -1 || x[i]% 2 == 1 || x[i] > 0) {
                count++;
            }
        }
        System.out.println(count);
        return count;
        }
    }

1 Ответ

0 голосов
/ 25 сентября 2018

Вы должны начать с чтения Руководства пользователя JUnit и выполнения исследования , чтобы найти примеры и учебные пособия.

По сути, вы хотите создать класс JUnit, который будет проверять ваш класс FindValues.Обычно вы называете этот класс в честь того, который тестируется.Например, FindValuesTest.

Я начну с очень простого теста, содержащего базовое утверждение, но я думаю, что вам стоит почитать документацию и поиграть с JUnit некоторое время.Как только вы предприняли попытку создать JUnit и застряли на чем-то, вам следует вернуться сюда, отредактировать свой вопрос, добавив свою попытку и все соответствующие детали проблемы, с которой вы столкнулись.(см. Как задать хороший вопрос )

Как и было обещано, вот очень простой пример для начала:

import static org.junit.Assert.*;

import org.junit.Test;

public class FindValuesTest {

    @Test
    public void test() {
        int actualResult = FindValues.findLast(new int[]{1,2,3,4,2,5,8,2,9}, 2);
        assertEquals(7, actualResult);
    }

}

Обратите внимание, что я удалил жестко запрограммированный кодзначения параметров в пределах findLast:

public static int findLast(int[] x, int y) {
    for (int i = x.length - 1; i >= 0; i--) {
        if (x[i] == y) {
            // System.out.println(i);
            return i;
        }
    }
    return -1;
} 

Посмотрите, как тест предоставляет входные данные для вашего метода и утверждает, что выходные данные соответствуют ожидаемому - это то, для чего предназначен JUnit.Вы выполняете некоторый код, который хотите протестировать, и проверяете поведение этого кода на основе входных данных, предоставленных вашим тестом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...