|
|
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Посмотрите пожалуйста почему не проходится тест?? может чего-то недопонял?( package tests; import java.io.IOException; import junit.framework.TestCase; import org.easymock.EasyMock; import vit.proj.camelcase.CamelCaseInterface; public class CamelCaseTest extends TestCase{ public void testccmethod() throws IOException { StringBuffer expected = new StringBuffer("SomeWord"); CamelCaseInterface ccinterface = EasyMock.createMock(CamelCaseInterface.class); EasyMock.expect(ccinterface.ccmethod()).andReturn("some word"); EasyMock.replay(ccinterface); StringBuffer actual = new StringBuffer(); String word = "some word"; actual.append(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()); assertEquals(expected,actual); } } и рабочий вполне код: package vit.proj.camelcase; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CamelCase { public static String word; public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Pattern p = Pattern.compile("[a-zA-Z]+"); Matcher m = p.matcher(br.readLine()); while (m.find()) { word = m.group(); new CamelCase().ccmethod(); } } catch (Exception e) { System.err.println("ошибка"); } } public String ccmethod() { StringBuffer result = new StringBuffer(); result.append(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()); System.out.print(result.toString()); return null; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2013, 21:42:56 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2013, 21:57:45 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Vitasya, к сожалению у меня нет времени переписать целиком код. Вот примерно то, что очевидно стоит переделать. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Если Вы хотите протестировать предложение т.е. строку содержащею несколько слов, то Вам надо мокнуть последовательно три класса Код: java 1. System.in InputStreamReader BufferedReader Это должно быть легко... увы я ИзиМок не знаю, сходу сложно написать. а так метод юнит тест будет выглядить так примерно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 00:59:22 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, спасибо..таки конструктор обязательно надо добавлять в код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 10:28:14 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, а почему не проходиться, если в String word подставить такие значения? ведь если мы запускаем код и вводим в консоль hi world, она выдаст нам HiWorld import org.junit.Test; import java.io.IOException; import static junit.framework.Assert.assertTrue; public class CamelCaseTest { @Test() public void testccmethod() throws IOException { final String word = "hi world"; String expected = "HiWorld"; CamelCase cc = new CamelCase(word); String actual = cc.ccmethod(word); assertTrue(expected.equals(actual)); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 11:21:08 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, вопрос отменяется, разобрался! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 16:53:23 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
VitasyaSergunka, спасибо..таки конструктор обязательно надо добавлять в код? Виталий, код надо просто полностью переписать, что я сегодня и сделаю если время позволит на работе этим заниматься. Конструктор я добавил просто походу на всякий случай используя формальный подход когда мок делаешь то обычно это пригодится. На самом деле правильно было бы если бы ты выложил условие задания так как сложно догадаться, что от тебя требуется. Хотя это более менее очевидно - ввести предложение с консоли и сжать пробелы между словами. Все слова написать с заглавной буквы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 19:46:36 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Maven Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Примерно должно выглядеть так как я сдезайнил, хотя как говорится нет предела совершенству. На мой взгляд лучше сразу использовать Mockito здесь хорошая объяснялка http://code.google.com/p/mockito/wiki/MockitoVSEasyMock Уж больно езимок глюковатый я даже не уверен, что мокнул по всем правилам :) Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2013, 21:27:18 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, Спасибо большое!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 12:50:37 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Vitasya, Я тут походу сделал некоторые полезные изменения. Дело в том, что при инициализации вашего класса может возникнуть прерывание рекомендуется такие вещи обходить специальным методом init() с ошибкой прерывания и его последующей обрабокой не в теле самого метода, а за его пределами. Этот момент очень существенный пожалуйста разберитесь в нем раз и на всегда. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. Второй момент с таким дезайном нам не нужен мок так как метод parse() сам благополучно мокает сам себе только подставь значение строки parse( String) В общем с моком разберитесь на каком нибудь другом примере здесь он не нужен. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 22:10:00 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, огромная вам благодарность за заботу, буду разбирать сейчас..не думал что ещё какой то ответ поступит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2013, 19:58:25 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, а я ещё хотел спросить зачем там везде нужны слово final и private ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 12:32:38 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, и можно было вообще это делать без геттеров и сеттеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 15:10:59 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
VitasyaSergunka, а я ещё хотел спросить зачем там везде нужны слово final и private ? и можно было вообще это делать без геттеров и сеттеров? Это связано в первую очередь с уровнем понимания проблемы. Ограничивая скоп (видимость) переменной и требуя final от параметра говорит скорее о том, что чел использует плагин -- checkStyle и понимает, что это базовые требования дизайна при совместной разработке. Можно делать все что угодно, но существуют правила которых следует придерживаться в дальнейшем это приносит свою пользу. Внимательно почитайте требования ООП - инкапсуляцию и полиморфизм ответ на Ваши вопросы лежит в базе ООП и особенности языка Java. Установите плагин checkStyle и будет Вам счастье в JI проверка стиля стоит на автомате Удачи Вот мой набор правил я прикрепил -- берите пользуйтесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2013, 20:00:57 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
Sergunka, ок,а вот ещё такой вопрос волнует - можно написать тесты к такому коду camelcase с той же идеей, не переделывая его никак, не усложняя,будет это корректно вцелом?у меня не получилось лично.. import java.util.regex.*; import java.io.*; public class Camel_Case { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Pattern p = Pattern.compile("[a-zA-Z]+"); Matcher m = p.matcher(br.readLine()); StringBuffer result = new StringBuffer(); String word; while (m.find()) { word = m.group(); result.append(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase()); } System.out.println(result.toString()); } catch (Exception e) { System.err.println("An error occured while reading input string."); } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2013, 18:51:10 |
|
||
|
JUnit тест
|
|||
|---|---|---|---|
|
#18+
VitasyaSergunka, ок,а вот ещё такой вопрос волнует - можно написать тесты к такому коду camelcase с той же идеей, не переделывая его никак, не усложняя,будет это корректно вцелом?у меня не получилось лично.. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Это нельзя сделать по определению. http://ru.wikipedia.org/wiki/Модульное_тестирование Никто не пишет тесты для main метода. Вы должны написать некую функциональность для класса - его поля и методы на формальном уровне для того чтоб начать тестировать класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 00:41:46 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=224&tid=2129179]: |
0ms |
get settings: |
19ms |
get forum list: |
25ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
46ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
498ms |
get tp. blocked users: |
3ms |
| others: | 314ms |
| total: | 942ms |

| 0 / 0 |
