powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно создать junit test для синглтона
11 сообщений из 11, страница 1 из 1
как правильно создать junit test для синглтона
    #33808109
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как правильно сделать тесты для класса сингтона

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
как правильно создать junit test для синглтона
    #33808139
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
"я умею оформлять код тегами"
...
Рейтинг: 0 / 0
как правильно создать junit test для синглтона
    #33808236
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как правильно создать junit test для синглтона
    #33808266
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полный код тест кейса.
ваш класс Nain вовсе не синглтон.
используйте такой способ.
...
Рейтинг: 0 / 0
как правильно создать junit test для синглтона
    #33808279
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю, что с эксепшном
но переменная 'n' в testGetNain - не инициализируется.
проверить, что нельзя создавать новые объекты...
можно попробовать перебрать конструкторы через интроспекцию и убедиться, что они в private scope
но не даст 100% гарантии
...
Рейтинг: 0 / 0
как правильно создать junit test для синглтона
    #33808292
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timmполный код тест кейса.
ваш класс Nain вовсе не синглтон.
используйте такой способ.

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

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


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

оно?
...
Рейтинг: 0 / 0
как правильно создать junit test для синглтона
    #33808547
Фотография 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()));
        }
...
Рейтинг: 0 / 0
как правильно создать junit test для синглтона
    #33808592
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как правильно создать junit test для синглтона
    #33808612
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приватные - только через интроспекцию, но это вообще-то изврат
вообще общая практика - класть тесты в те же пакеты, что и сами классы, и методы, которые надо включить в тесты но исключить из паблик апи - писать в default scope
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как правильно создать junit test для синглтона
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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