initializationError: у тестового класса должен быть ровно один publi c нулевой аргумент - PullRequest
0 голосов
/ 17 января 2020

Я получаю initializatoinError.

java .lang.Exception: тестовый класс должен иметь ровно один publi c конструктор с нулевым аргументом. Мой код (это пример из Java Programming Interview Exposed):

import org.junit.*;

import static org.junit.Assert.*;

public class Complex {
    private final double real;
    private final double imaginary;

    public Complex(final double r, final double i) {
        this.real = r;
        this.imaginary = i;
    }
    public Complex add(final Complex other) {
        return new Complex(this.real + other.real,
                this.imaginary + other.imaginary);
    }
    // hashCode omitted for brevity
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Complex complex = (Complex) o;
        if (Double.compare(complex.imaginary, imaginary) != 0) return false;
        if (Double.compare(complex.real, real) != 0) return false;
        return true;
    }

    @Test
    public void complexNumberAddition() {
        final Complex expected = new Complex(6,2);
        final Complex a = new Complex(8,0);
        final Complex b = new Complex(-2,2);
        assertEquals(a.add(b), expected);
    }
}

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 17 января 2020

Ошибка говорит именно то, что не так. Ваш класс не имеет "ровно одного publi c конструктора с нулевым аргументом".

Но золотым правилом является проведение тестов вне бизнес-классов. Поэтому создайте новый класс с именем public class ComplexTest и поместите туда свой тестовый метод.

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