Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2010, 17:56   #1
kirrill
Новичок
Джуниор
 
Регистрация: 06.09.2010
Сообщений: 4
Вопрос Java. Объект треугольник и JUnit тест

Имеется интерфейс:

Код:
public interface Triangle {
int getLen1();
int getLen2();
int getLen3();
}
где методы getLen возвращают длины сторон треугольника в виде 3 чисел
также есть метод возвращающий треугольник:


Код:
public final class TriangleProvider {
public static Triangle getTriangle() {
...
}
}
нужно написать junit тест проверяющий метод getTriangle() на то что он действительно возвращает треугольник.

я так понимаю нужно использовать свойство треугольника о том, что сумма двух его сторон больше третьей, но где это прописать не представляю

написал вот такое:

Код:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
 
public class TestTriangle {
    @Test
    public void getTriangleTest() {
        Triangle  t = new Triangle();
        assertTrue((t.getLen1() + t.getLen2() > t.getLen3()) && (t.getLen2() + t.getLen3() > t.getLen1()) && (t.getLen3() + t.getLen1() > t.getLen2()));
 
    }
}
Но что то не то, а как использовать методы интерфейса потому что у меня через экземпляр не работает...

From artemavd: не забывай пользоваться тэгом оформления кода.

Последний раз редактировалось artemavd; 06.09.2010 в 18:42.
kirrill вне форума Ответить с цитированием
Старый 06.09.2010, 20:14   #2
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
Triangle  t = new Triangle();
Нельзя создавать экземпляр интерфейса. Так как интерфейс всего лишь задает общую "форму" объекта.
Расширь интерфейс классом TriangleProvider и переопредели методы:
Код:
public interface Triangle {
int getLen1();
int getLen2();
int getLen3();
Triangle getTriangle();
}

public class TriangleProvider implements Triangle {
//Твоя реализация методов
public int getLen1(){}
public int getLen2(){}
public int getLen3(){}
public Triangle getTriangle() {}
}
Дальше пиши тест:
Код:
    public void getTriangleTest() {
        Triangle  t = new TriangleProvider();

        //Тут пишешь свой тест 
    }

Последний раз редактировалось profi; 06.09.2010 в 20:30. Причина: Подправил.
profi вне форума Ответить с цитированием
Старый 06.09.2010, 20:25   #3
kirrill
Новичок
Джуниор
 
Регистрация: 06.09.2010
Сообщений: 4
По умолчанию

но теперь получается что я тестирую не метод getTriangle(), а что то другое...
kirrill вне форума Ответить с цитированием
Старый 06.09.2010, 20:27   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Т.е.? Не совсем тебя понял.
profi вне форума Ответить с цитированием
Старый 06.09.2010, 20:51   #5
kirrill
Новичок
Джуниор
 
Регистрация: 06.09.2010
Сообщений: 4
По умолчанию

у меня задание протестировать метод getTriangle() на то что он действительно возвращает треугольник

а т.к. у меня метод getTriangle() пустой и походу ничего не возвращает, то я просто проверяю методы getTriangle() и метод getTriangle() вообще ни при чём

Код:
public void getTriangleTest() {
        Triangle  t = new TriangleProvider();
        assertTrue(((t.getLen1() + t.getLen2()) > t.getLen3()) && 

((t.getLen2() + t.getLen3()) > t.getLen1()) && ((t.getLen3() + t.getLen1()) 

> t.getLen2()));
    }
Кстати код не компилица пишет что:
C:\Program Files\Java\jdk1.6.0_21\bin>javac -cp junit-4.9.jar t1\*.java
t1\TestTriangle.java:8: cannot find symbol
symbol : method assertTrue(boolean)
location: class TestTriangle
assertTrue(((t.getLen1() + t.getLen2()) > t.getLen3()) && ((t.getLen2
) + t.getLen3()) > t.getLen1()) && ((t.getLen3() + t.getLen1()) > t.getLen2()));

1 error


Не пойму в чём дело?

Последний раз редактировалось kirrill; 06.09.2010 в 21:12.
kirrill вне форума Ответить с цитированием
Старый 06.09.2010, 21:48   #6
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от kirrill Посмотреть сообщение
у меня задание протестировать метод getTriangle() на то что он действительно возвращает треугольник

а т.к. у меня метод getTriangle() пустой и походу ничего не возвращает, то я просто проверяю методы getTriangle() и метод getTriangle() вообще ни при чём
...



Кстати код не компилица пишет что:
...
Не пойму в чём дело?
мб в том что вы не понимаете что от вас хотят?

вам необходимо протестировать метод getTriangle(), для этого вам надо написать его реализацию и протестировать реализацию, но на уровне интерфейса.

а код не компилируется, скорее всего по тому что вы некорректно описали путь к junit, либо допустили синтаксические ошибки.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 06.09.2010, 22:21   #7
kirrill
Новичок
Джуниор
 
Регистрация: 06.09.2010
Сообщений: 4
По умолчанию

Всем большое спасибо за помощь!

Последний раз редактировалось kirrill; 07.09.2010 в 01:35.
kirrill вне форума Ответить с цитированием
Старый 08.11.2011, 00:34   #8
liizavetik
Новичок
Джуниор
 
Регистрация: 30.10.2011
Сообщений: 1
По умолчанию

Люди,кто-нибудь может объяснить и помочь написать тестовый код???очень надо(((
liizavetik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс треугольник в java Vitaliy_Kom Помощь студентам 0 23.11.2009 10:01
Помогите справиться с java.lang.OutOfMemoryError: Java heap space Levilaulada Помощь студентам 1 17.05.2009 10:59
JUnit, JMock... Fuud Общие вопросы по Java, Java SE, Kotlin 0 26.03.2009 16:31