|
|
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
как правильно сделать тесты для класса сингтона 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( ) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 11:54 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:01 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Pitbull terrier Код: plaintext как правильно сделать тесты для класса сингтона Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. в методе Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 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( ) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:21 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
полный код тест кейса. ваш класс Nain вовсе не синглтон. используйте такой способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:26 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
не знаю, что с эксепшном но переменная 'n' в testGetNain - не инициализируется. проверить, что нельзя создавать новые объекты... можно попробовать перебрать конструкторы через интроспекцию и убедиться, что они в private scope но не даст 100% гарантии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:30 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Timmполный код тест кейса. ваш класс Nain вовсе не синглтон. используйте такой способ. почему - синглтон только не трид-сейф ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:32 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Все решил проблему я просто сразу что не понравилось катом вырезал а вот to do не почитал а в нем сказано , надо метод fail удалить(он и вызывает эксепшон) и самому реализовать тест Правда вот еще не решилось как протестировать что конструктор private чтоб тесты перестали работать если коструктор объявить public ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:18 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
llemingПравда вот еще не решилось как протестировать что конструктор private чтоб тесты перестали работать если коструктор объявить public moiможно попробовать перебрать конструкторы через интроспекцию и убедиться, что они в private scope оно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:27 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:29 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
Pitbull terrier Код: plaintext 1. 2. 3. 4. 5. Ого сэнкс Вам надо это записать а лучше запомнить а вот JUnit как понял (если правильно понял тестирует функциональность) т е тестирует методы. А как протестировать переменные которые private и методов getXXX нету или он тоже приват. А ато main(String[] args) в каждый класс вставлять неохота и проверять все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:38 |
|
||
|
как правильно создать junit test для синглтона
|
|||
|---|---|---|---|
|
#18+
приватные - только через интроспекцию, но это вообще-то изврат вообще общая практика - класть тесты в те же пакеты, что и сами классы, и методы, которые надо включить в тесты но исключить из паблик апи - писать в default scope ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33808488&tid=2148903]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
91ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 452ms |

| 0 / 0 |
