Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Як метод скидання Mockito порівнюється з іншими знущільними бібліотеками


Як метод скидання Mockito порівнюється з іншими знущільними бібліотеками


Метод `` reset () `` `) - це функція, яка дозволяє скинути макетний об’єкт, щоб його можна було повторно використовувати. Однак його використання, як правило, відлякує розробниками та користувачами Mockito, оскільки воно може вказувати на погано розроблені тести або код, який є надмірно складним і важко тестувати чистота [7] [9]. Натомість рекомендованим підходом є створення нових макетів для кожного методу тестування, щоб забезпечити незалежність та чіткість у тестуванні [7] [9].

Порівняння з іншими глузливими бібліотеками

1. JMOCK2: На відміну від Mockito, JMock2 використовує контекст для управління очікуваннями та макетною інформацією, яка перебудована для кожного методу тестування. Це означає, що JMock2 не вимагає явного скидання, як це робить Mockito [10]. Підхід JMOCK2 допомагає підтримувати ізоляцію тесту, не потребуючи вручну скидання макетів.

2. Easymock: Easymock також зазвичай не потребує способу скидання. Він призначений для створення нових макетних об'єктів для кожного тесту, подібного до рекомендованої практики з Mockito. Szczepan Faber, розробник Mockito, згадує, що йому ніколи не потрібна функція скидання під час використання Easymock [8].

3. Mockito проти інших бібліотек: Загалом, інші насмішкові бібліотеки, такі як JMOCK2 та Easymock, сприяють більш чистому тестувальному підходу, автоматично керуєте станом макетів, або заохочуючи створення нових макетів для кожного тесту. Метод `` `` `` `)` `є скоріше винятком, а не нормою в глузуючих рамках.

найкращі практики

- Уникайте використання `Reset ()`: Якщо абсолютно не потрібно, наприклад, коли макет вводиться контейнером і не може бути відтворений для кожного тесту, доцільно уникати використання `reset ()`. Натомість зосередьтеся на створенні простих, цілеспрямованих тестів з новими макетами для кожного сценарію [7] [9].

- Використовуйте `ClearInVocations ()`: Якщо вам потрібно очистити взаємодію без скидання, використовуйте `clearInVocations ()`. Цей метод дозволяє зберегти заглушування під час очищення будь -яких записаних взаємодій, що може бути корисним у певних сценаріях [5].

- Код рефактора для тестування: Якщо вам потрібно використовувати `` reset () `часто, це може вказувати на те, що ваш код може отримати користь від рефакторингу, щоб зробити його більш перевіреним. Це може включати розбиття складних методів або покращення введення залежності [9].

Підсумовуючи це, хоча Mockito надає метод `` reset () `, його використання, як правило, відлякується на користь створення нових макетів для кожного тесту. Інші глузуючі бібліотеки часто сприяють подібній практиці, підкреслюючи чисті та незалежні тести над складним макетним управлінням.

Цитати:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://groups.google.com/g/mockito/c/y_ihdc8lx_m
[3] https://www.vogella.com/tutorials/mockito/article.html
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[5] https://www.toptal.com/java/a-guide-to-everyday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/coprative-use-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareengineering.stackexchange.com/questions/188299/is-this-an-aprative-use-of-mockitos-reset-method
[10] https://stackoverflow.com/questions/18164123/how-to-cean-up-in-in-spring-tests-hen-using-mockito