Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно создать junit test для синглтона / 11 сообщений из 11, страница 1 из 1
22.06.2006, 11:54
    #33808109
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
как правильно сделать тесты для класса сингтона

class Nain{
private Nain nain;
private Nain(){}

public static Nain getNain(){
if(nain==null)
nain=new Nain();
return nain;
}
}


для него вот такой тест
в методе setUp(){
Nain n=Nain.getNain();
}

public void testGetNain () {
System.out.println ("getNain");
Nain expect=n;
Nain result=Nain.getNain();

System.out.println("expected:"+expect);
System.out.println("result:"+result);

assertTrue (expect==queries);
assertTrue (expect!=null);
fail ("The test case is a prototype.");
}


Нетбинс генерирует
assertEquals(expect,result) который я переделал как показано выше в assertTrue(expect==result);
и теперь бинса плюет ошибку

Testcase: testGetMain(Nain): FAILED
The test case is a prototype.
junit.framework.AssertionFailedError: The test case is a prototype.
at Nain.testGetNain(Nain.java:21)

что это значит ?

и как кстати в этом же тесте проверить что нельзя создавать объекты Nain явно чтобы потом случайно конструктор не объявить public
что писать и как:

assertTrue( ) ???
...
Рейтинг: 0 / 0
22.06.2006, 12:01
    #33808139
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Код: plaintext
"я умею оформлять код тегами"
...
Рейтинг: 0 / 0
22.06.2006, 12:21
    #33808236
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Pitbull terrier
Код: plaintext
"я умею оформлять код тегами"


как правильно сделать тесты для класса сингтона
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 class  Nain{
<b> private  Nain nain;
 private  Nain(){}

 public   static  Nain getNain(){
 if (nain== null )
nain= new  Nain();
 return  nain;
} 
}

для него вот такой тест
в методе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
setUp(){
Nain n=Nain.getNain();
}

 public   void  testGetNain () {
System.out.println ("getNain");
Nain expect=n;
Nain result=Nain.getNain();

System.out.println("expected:"+expect);
System.out.println("result:"+result);

assertTrue (expect==queries);
assertTrue (expect!= null );
fail ("The test case is a prototype.");
}

Нетбинс генерирует
assertEquals(expect,result) который я переделал как показано выше в assertTrue(expect==result);
и теперь бинса плюет ошибку

Testcase: testGetMain(Nain): FAILED
The test case is a prototype.
junit.framework.AssertionFailedError: The test case is a prototype.
at Nain.testGetNain(Nain.java:21)

что это значит ?

и как кстати в этом же тесте проверить что нельзя создавать объекты Nain явно чтобы потом случайно конструктор не объявить public
что писать и как:

assertTrue( ) ???
...
Рейтинг: 0 / 0
22.06.2006, 12:26
    #33808266
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
полный код тест кейса.
ваш класс Nain вовсе не синглтон.
используйте такой способ.
...
Рейтинг: 0 / 0
22.06.2006, 12:30
    #33808279
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
не знаю, что с эксепшном
но переменная 'n' в testGetNain - не инициализируется.
проверить, что нельзя создавать новые объекты...
можно попробовать перебрать конструкторы через интроспекцию и убедиться, что они в private scope
но не даст 100% гарантии
...
Рейтинг: 0 / 0
22.06.2006, 12:32
    #33808292
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Timmполный код тест кейса.
ваш класс Nain вовсе не синглтон.
используйте такой способ.

почему - синглтон
только не трид-сейф
...
Рейтинг: 0 / 0
22.06.2006, 13:18
    #33808488
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Все решил проблему я просто сразу что не понравилось катом вырезал а вот to do не почитал а в нем сказано , надо метод fail удалить(он и вызывает эксепшон) и самому реализовать тест

Правда вот еще не решилось как протестировать что конструктор private чтоб тесты перестали работать если коструктор объявить public
...
Рейтинг: 0 / 0
22.06.2006, 13:27
    #33808533
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
llemingПравда вот еще не решилось как протестировать что конструктор private чтоб тесты перестали работать если коструктор объявить public


moiможно попробовать перебрать конструкторы через интроспекцию и убедиться, что они в private scope

оно?
...
Рейтинг: 0 / 0
22.06.2006, 13:29
    #33808547
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Код: plaintext
1.
2.
3.
4.
5.
        Constructor[] declaredConstructors = Nain. class .getDeclaredConstructors();
         for  ( int  i =  0 ; i < declaredConstructors.length; i++)
        {
            assertTrue(Modifier.isPrivate(declaredConstructors[i].getModifiers()));
        }
...
Рейтинг: 0 / 0
22.06.2006, 13:38
    #33808592
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
Pitbull terrier
Код: plaintext
1.
2.
3.
4.
5.
        Constructor[] declaredConstructors = Nain. class .getDeclaredConstructors();
         for  ( int  i =  0 ; i < declaredConstructors.length; i++)
        {
            assertTrue(Modifier.isPrivate(declaredConstructors[i].getModifiers()));
        }



Ого сэнкс Вам
надо это записать а лучше запомнить


а вот JUnit как понял (если правильно понял тестирует функциональность) т е тестирует методы. А как протестировать переменные которые private и методов getXXX нету или он тоже приват. А ато main(String[] args) в каждый класс вставлять неохота и проверять все
...
Рейтинг: 0 / 0
22.06.2006, 13:43
    #33808612
Pitbull terrier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правильно создать junit test для синглтона
приватные - только через интроспекцию, но это вообще-то изврат
вообще общая практика - класть тесты в те же пакеты, что и сами классы, и методы, которые надо включить в тесты но исключить из паблик апи - писать в default scope
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно создать junit test для синглтона / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]