Классы Watin C # становятся очень большими, что является лучшим способом их расколоть - PullRequest
0 голосов
/ 27 октября 2011

При тестировании сайта я получаю действительно длинные файлы классов, тестирующие множество различных частей сайта. Я мог бы разбить их на отдельные классы, но тогда мне нужно было бы обойти объекты Browser, и это потребовало бы много лишних затрат. Я также мог бы добавить «файл кода», который, я думаю, мог бы быть просто включен в основной класс, в котором я работаю, и иметь в нем функции. Как правильно разбить большой файл класса c # на файлы меньшего размера?

Ответы [ 4 ]

3 голосов
/ 27 октября 2011

Я бы разбил их на файлы, сгруппированные по похожим функциям, и использовал бы ключевое слово частичное .

Также -

Если ваш класс становится таким большим, я подозреваю, что вы загружаете его слишком большим количеством обязанностей.

2 голосов
/ 27 октября 2011

Как вы сказали, ваш класс "тестирование множества различных частей веб-сайта" создает один класс для одной части веб-сайта.Например, вы можете сделать два шага для рефакторинга.1. Разбейте класс на несколько файлов, используя частичное ключевое слово.2. Шаг за шагом удалите частичное и переименуйте имя класса в соответствии с его ответом.

1 голос
/ 27 октября 2011
 Whats the right way to break up a big c# class file into smaller files?

Его нужно разделить на отдельные классы.

Класс должен иметь единственную цель, метод должен выполнять одно действие, хороший код должен объясняться.

0 голосов
/ 28 октября 2011

У нас более 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

Затем в вашем окне Test View в VS сгруппируйте их по Test Name, которое покажет вам ...

- Site1.LoginTests
  - ValidLogin
  - InvalidLogin
+ Site1.MyAccountTests
+ Site1.MiscTests
+ Site2.LoginTests
+ Site2.MyAccountTests
+ Site2.MiscTests
+ Site3.LoginTests
+ Site3.MyAccountTests
+ Site3.MiscTests
...