Классы Watin C # становятся очень большими, каков наилучший способ их разбить

#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