Как создавать объекты в тестах JUnit из абстрактного класса - PullRequest
0 голосов
/ 02 января 2019

У меня есть abstract class Printers, и я просто хочу проверить его equals метод, но когда я создаю два Printers в PrintersTest, я не могу установить их.

Это PrintersTest:

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class PrintersTest {

    @Test
    void testEqualsObject() {
        Printers a = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        Printers b = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        assertEquals(a,b);
    }       
}

и это Printers класс:

import java.util.Objects;

public abstract class Printers {
    protected String brand;
    protected String model;
    protected String pages;
    protected String price;

    public Printers(String brand, String model, String pages, String price) { 
        super();
        this.brand = brand;
        this.model = model;
        this.pages = pages;
        this.price = price;
    }

    /*
     * (non-Javadoc)
     * 
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (!(obj instanceof Printers)) {
            return false;
        }
        Printers other = (Printers) obj;
        return Objects.equals(brand, other.brand) && Objects.equals(model, other.model)
                && Objects.equals(pages, other.pages) && Objects.equals(price, other.price);
    }
}

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 02 января 2019

Вам нужно иметь другой класс, расширяющийся от принтеров (возможно, у вас он уже есть), например, типа принтера или чего-то еще, тогда в вашем тестовом классе вы создадите новый принтер на основе этого класса, например:

@Test
    void testEqualsObject() {
        Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        assertEquals(a,b);
    }

Это решит вашу проблему, так как вам не нужно создавать экземпляры принтеров.

...