|
Тестовое задание
|
|||
---|---|---|---|
#18+
Ребят не могу пробиться уже 2 дня в тестовом задании https://github.com/apb12/SE_Alekseev/tree/master/src/sef/module9/activity сделал лишь RadarContactImpl тесты проходит нормально,а вот c Radarimpl и компаратором судя по всему проблема просто два дня бьюсь над этим классом и врядли уже побью ,а мне еще более 20 тестов пройти только по SE помогите добить кому не сложно эти два класса ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 10:15 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
сейчас у меня в классе RadarImpl проходят два теста из 4х в этом классе это TestRemove and TestRadar два других теста не проходят первое падение происходит вот тут Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
в тесте добавляется 3 обьекта ,потом один удаляется и почему то хотят чтобы метод getContactCount вернул 3 вместо 2 а метод getContactCount -возвращает размер списка я подумал по другому -значит должно возвращать просто сколько всего было добавлено в список не зависимо удалено или нет. ввел глобальную инту и добалял к ней значение каждый раз,когда срабатывал метод addContacts,но и это оказалось неверно,так как в тесте testRemove уже вот такие строчик Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
тоесть при удалени обьекта требует размер списка текущего короче я окончательно запутался ,либо тесты кривые либо я уже не знаю чего делать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 10:58 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Абсолютно правильный тесткейс, проверяющий то что твой сервис испоользует защитное копирование. Читай блоха до просветления) конкретно по твоему случаю - http://thefinestartist.com/effective-java/39, только он там про даты говорит, а тебе нужно делать копии листа. Единственное что смущает что тебе не объяснили что этот тест должен делать, тренируют телепатию? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:11 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл ник, в инетерфейсе написано ,по этому классу в комментах радара написано ,что хотят хорошо если копировать лист то два теста сами себе противоречат в одном случае требует чтобы вернул сколько всего добавили в лист,даже если удалял из него что то ,во втором случае нужно вернуть коректное значение текущего состояния листа как это сделать в одном методе ,который не приимает ни каких параметоров хотя чтобы можно было как то реализовать условия ,которые от меня хотят да и не суть это уже я запутался окончально и все равно уже не вывезу этот тест нужно чтобы кто то трезвым взглядом написал решение и все ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:19 |
|
Тестовое задание
|
|||
---|---|---|---|
#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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75.
вот что требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:21 |
|
Тестовое задание
|
|||
---|---|---|---|
#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. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:22 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79, Читай что тебе пишут, а не свои фантазии. В первом случае ты вызываешь метод, который присваивает значение переменной типа list. Это отдельная ссылка, это не состояние твоего radarservice. Поэтому если ты меняешь лист, то это не должно отразиться на состоянии радарсеовиса. Во втором тесте, ты удаляешь напрямую через радарсервис, и в этом случае состояние должно измениться. Тебе надо в геттере делать копию листа, вот и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:24 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл ник,все это супер ,но я не понима того чего ты мне сказал к сожалению(( я два дня смотрю на этот класс и уже не в сосстоянии ничего придумать к сожалению геттер-для поля лист и что с ним делать?и чем это будет отличаться от того,что напрямую удаляют сорри но я ничего не понял -мне нужно увидеть код чтобы понять,абстракции моя голова уже не воспринимает ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:32 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
да там все равно если в тесте просто схитрить и подставить нужные значения,то дальше еще куча красноты вываливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:34 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Ну для этого и надо было прочитать статью, что я скинул. Каждый класс несёт ответственность за свои инварианты. ContactList - часть состояния класса, в геттере ты возвращаешь этот лист, и кто-то может изменить контактлист вне класса(как в первом тесте). То есть проблема в том, что две ссылки, первая это контактлист внутри класса, а вторая это переменная типа лист в тесте. Как это пофиксить? В геттере надо возвращать не ссылку а заново сконструированный лист на основе контактлист. Код: java 1.
Вот и вся проблема. Если говорить шире - то ты должен писать такой код, чтобы ты принимал состояние через конструктор, проверяя из на валидность.. а изменения только через методы этого же класса, который ты и только ты контролируешь ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:39 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл никНу для этого и надо было прочитать статью, что я скинул. Каждый класс несёт ответственность за свои инварианты. ContactList - часть состояния класса, в геттере ты возвращаешь этот лист, и кто-то может изменить контактлист вне класса(как в первом тесте). То есть проблема в том, что две ссылки, первая это контактлист внутри класса, а вторая это переменная типа лист в тесте. Как это пофиксить? В геттере надо возвращать не ссылку а заново сконструированный лист на основе контактлист. Код: java 1.
Вот и вся проблема. Если говорить шире - то ты должен писать такой код, чтобы ты принимал состояние через конструктор, проверяя из на валидность.. а изменения только через методы этого же класса, который ты и только ты контролируешь я уже это понял ,но не понимаю как это реализовать в моем примере,тоесть вот у меня сейчас проблема в методе Код: java 1. 2. 3. 4.
и я так понял в методе Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
я не понимаю куда мне добвлять геттеры и что это должны быть за геттеры поля лист или самого класса вообщем не обращай внимания но у меня просто котелок не варит я не понимаю куда что подставить чтоб заработало(((( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:51 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
попробовал вот так Код: java 1. 2. 3. 4.
ничего не получается сделал геттер -ничего не получается так как изменение одного объекта ведет к изменению всех ссылок на этот обьект -тобишь нужно какую то копию чтоли делать и видимо в методе каком то непонятном ничегоо не понимаю аааааа ппц ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 11:58 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79, Тут надо скорее всего копию листа вернуть. Код: java 1. 2. 3. 4. 5. 6.
И тут надо скорее всего создавать копию. Сортировать ее и возвращать отсортированную копию. Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:01 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Проблема не в getcontactcount и не в removecontact. А в getcontactlist, я тебе уже 3 раза написал ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:02 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
А ну да, он у тебя называется returncontacts, ну суть та же ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:03 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл ник, вот ты красасава,все заработало) я сделал вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
теперь я начал понимать немного в тесте мы созадали новый лист с помощью этих методов и любые манипуляции с этим объектом извне ни как не повлияют на состояние поля contactList Код: java 1.
а при вызове метода getCountList мы обращаемся не к этому листу а к полю contactList,которое может менять свое состояние только с помощью методов addContacts and RemoveContacts просто шикарно))спасибо тебе ник. но честно говоря об этом нет ни слова в задании - и как ты правильно заметил нужно видимо обладать телепатией ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:33 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
Либо делай копии либо возвращай Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:35 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
правда это не спасет от вариант если предусмотрительно сохранить ссылочку на список до передачи в radarimpl ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:37 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
llemingЛибо делай копии либо возвращай Код: java 1. 2. 3. 4. 5.
спасибо большое,уже реализовал. я просто пропустил вот эту строчку в тесте Код: java 1.
и думал что тест работает с полем текущего обьекта и никак не понимал что от меня хотят. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:48 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
lleming, Кстати да, хороший поинт. Если в конструктор предают мутабельные элементы, типо date,list и т.д - не присваивай их напрямую своим филдам, а также делай копию и только потом присваивай ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:48 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
А насчёт телепатии - на самом деле это просто принципы грамотного проектирования, и их должны знать. Но учитывая что ты на стажировке, то логично что ты этого можешь не знать и тупо от тебя требовать чтото ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 12:55 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
забыл никА насчёт телепатии - на самом деле это просто принципы грамотного проектирования, и их должны знать. Но учитывая что ты на стажировке, то логично что ты этого можешь не знать и тупо от тебя требовать чтото да я вот тоже так думаю,что на начальном курсе java -тем более без каких либо требований ожидать,что я сам угадаю) это вообще задание на коллекции если что было)) вчера я например боролся с какими то градусами,вместо того чтобы отрабатывать коллекции) но в общем и целом это хороший курс я думаю ,но и очень сложный. час вот модуль многопоточности ,боюсь представить что там ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 13:09 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79забыл ник, вот ты красасава,все заработало) я сделал вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Сортировку надо делать на копии, а то иначе ConcurrentModificationException будут ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 13:55 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
asv79забыл никА насчёт телепатии - на самом деле это просто принципы грамотного проектирования, и их должны знать. Но учитывая что ты на стажировке, то логично что ты этого можешь не знать и тупо от тебя требовать чтото да я вот тоже так думаю,что на начальном курсе java -тем более без каких либо требований ожидать,что я сам угадаю) это вообще задание на коллекции если что было)) вчера я например боролся с какими то градусами,вместо того чтобы отрабатывать коллекции) но в общем и целом это хороший курс я думаю ,но и очень сложный. час вот модуль многопоточности ,боюсь представить что там Многопоточку я-бы вообще не давал начинающим. Нет у них в принципе на производсве таких задач которые сразу потребуют такой архитектуры. Или их разработки надо тщательно ревьювить и тестировать с особым пристальным вниманием. +Многопоточка выходит за рамки обычного Java-world, где радуга и единороги. Многопоточка стоит одной ногой на hardware, registers, caches, atomic e.t.c. термины которые надо в принципе знать как инженеру. Вобщем если вы на сях хорошо кодили multithreading то зайдете в это дело быстро даже не разбираясь в Java. Но если вы - полный junior - то надо навёрстывать упущенное. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 14:12 |
|
Тестовое задание
|
|||
---|---|---|---|
#18+
да кроме того та самая низкоуровневая многопоточка может понадобиться в основном только в ну очень утилитарных задачах. в спринг-бут мире всяких недоэнтерпрайзприложений ее около нуля или ограничена она футурами это в лучшем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2019, 18:20 |
|
|
start [/forum/topic.php?fid=59&msg=39825380&tid=2121251]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 550ms |
0 / 0 |