#c# #watin
#c# #watin
Вопрос:
При тестировании сайта я получаю очень длинные файлы классов, тестирующие множество разных частей веб-сайта. Я мог бы разбить их на отдельные классы, но тогда мне нужно было бы передавать объекты браузера и, похоже, много дополнительных накладных расходов. Я мог бы также добавить «файл кода», который, я думаю, можно было бы просто включить в основной класс, в котором я работаю, и заставить его выполнять функции. Как правильно разбить большой файл класса c # на файлы меньшего размера?
Комментарии:
1. Вам нужно разделить их логически на основе их доменов. В другом примечании: я бы рекомендовал генераторы кода.
2. Вы выводите из класса Page и помещаете свою логику страницы в эти классы, верно? Если нет, изучите это, поскольку это ОГРОМНАЯ помощь.
Ответ №1:
Я бы разбил их на файлы, сгруппированные по схожей функциональности, и использовал бы ключевое слово partial .
Также —
Если ваш класс становится таким большим, я подозреваю, что вы возлагаете на него слишком много обязанностей.
Ответ №2:
Как вы сказали, ваш класс «тестирование множества разных частей веб-сайта» создает единый класс для одной части веб-сайта. Например, вы можете предпринять два шага для рефакторинга. 1. Разбейте класс на несколько файлов, используя ключевое слово partial. 2. Шаг за шагом удалите частичное и переименуйте имя класса в соответствии с его отзывчивостью.
Ответ №3:
Whats the right way to break up a big c# class file into smaller files?
Это разделить его на отдельные классы.
Класс должен иметь единую цель, метод должен выполнять одно действие, хороший код должен объяснять сам себя.
Ответ №4:
В нашем проекте более 250 тестов. Изначально мы использовали частичные классы, но обнаружили, что найти конкретный тест для запуска сложно, поэтому мы структурировали классы следующим образом: —
- class Base
- class Site1
- class LoginTests
- ValidLogin()
- InvalidLogin()
class MyAccountTests
class MiscTests
- class Site2
class LoginTests
class MyAccountTests
class MiscTests
- class Site3
class LoginTests
class MyAccountTests
class MiscTests
Затем в вашем окне просмотра тестов в VS сгруппируйте их по имени теста, которое вам покажет…
- Site1.LoginTests
- ValidLogin
- InvalidLogin
Site1.MyAccountTests
Site1.MiscTests
Site2.LoginTests
Site2.MyAccountTests
Site2.MiscTests
Site3.LoginTests
Site3.MyAccountTests
Site3.MiscTests