2011-10-27 1 views
0

사이트를 테스트 할 때 웹 사이트의 많은 부분을 테스트하는 매우 긴 클래스 파일이 생성됩니다. 나는 그것들을 분리 된 클래스들로 나눌 수 있었지만, 나는 Browser Objects를 돌아 다닐 필요가 있었고 많은 여분의 오버 헤드처럼 보였다. 나는 또한 내가 일하는 주 수업에 포함될 수 있고 그것이 기능을 가지고 있다고 생각하는 "코드 파일"을 추가 할 수있다. 큰 C# 클래스 파일을 작은 파일로 분해하는 올바른 방법은 무엇입니까?Watin C# 클래스가 점점 커지고 있습니다. 그들을 없애는 가장 좋은 방법은 무엇입니까

+0

논리적으로 도메인을 기준으로 분할해야합니다. 다른 참고 사항 : 나는 코드 생성기를 권장합니다. – DarthVader

+0

Page 클래스에서 파생되었으며 페이지 논리를 해당 클래스에 넣는 것입니다. 맞습니까? 그렇지 않다면 거대한 도움이 될 것입니다. – OCary

답변

2

"웹 사이트의 여러 부분을 테스트"하는 클래스는 웹 사이트의 단일 부분에 대해 하나의 클래스를 만듭니다. 예를 들어 리팩토링을 위해 두 단계를 수행 할 수 있습니다. 1. 클래스를 partial 키워드를 사용하여 여러 파일로 나눕니다. 2. 부분적으로 이름을 바꾼 클래스 이름을 단계별로 제거하고 응답 성을 높이십시오.

3

비슷한 기능으로 그룹화 된 파일로 나누고 partial 키워드를 사용합니다. 또한

- 클래스가 큰 얻는 경우

, 난 당신이 너무 많은 책임과 그것을로드하는 것을 생각한다.

1

별도의 클래스로 구분합니다.

클래스는 단일 목적을 가져야하며, 메서드는 단일 액션을 수행해야하며, 좋은 코드는 자체적으로 설명해야합니다.

0

우리 프로젝트에는 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 
관련 문제