Як ви перевіряєте додаток та код інтерфейсу?


10

Я люблю писати одиничні тести і погоджуюся, що вони є прекрасним способом тестування коду, запобігання регресії і т. Д. Однак я не можу їх написати так багато, оскільки переважна більшість кодів, над якими я працюю в день і вихід, - це додаток код, який відображає користувальницький інтерфейс користувача. Чи існує хороший спосіб тестування коду програми? Які тут найкращі практики?

Я не шукаю конкретної відповіді, такої як рамки тощо. Але, взагалі, як ви підходите до цієї проблеми?


Що таке "код програми, що відображає інтерфейс користувача"? Ви говорите про С у MVC?
Мартін Вікман

Я говорю про будь-який графічний інтерфейс - JavaScript / HTML, C ++ з MFC, WinForms, WPF тощо ...
Джастін Етьє

MVVM легко провести тест. Дивіться схему командування
Амір Резай

@amir - Чи є у вас будь-які посилання чи додаткова інформація?
Джастін Етьє

Відповіді:


8

Щоб перевірити фактичний інтерфейс користувача, Selenium працює добре.

Якщо ви хочете фактичних тестових одиниць, ваша стратегія полягає в тому, щоб відштовхувати якомога більше логіки від фактичного інтерфейсу користувача, як правило, в об'єкт ViewModel. Потім можна написати тестові одиниці проти об’єкта ViewModel.

Іншими словами, введіть якомога менше логіки у фактичний інтерфейс користувача, щоб тестування одиниць могло відбуватися в іншому місці.


Це хороший дизайн для SoC. У інтерфейсі користувача не повинно бути логіки Домен / Бізнес. Дуже багато логіки клієнта - інтерактивність / перевірка може працювати в інтерфейсі з JavaScript, який є одиничним тестуванням.
StuperUser

1

Я мав успіх у тестуванні моєї програми на MSTest та тестуванні свого Javascript з QUnit та підбиранні результатів цих тестів за допомогою одного тесту MSTest Unit, який використовує WatiN (мені запропонували Selenium , який також може записувати тести, але знайшов WatiN кращим для автоматичної автоматичної автоматизації).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.