2011-10-27 52 views
0

在测试一个网站,我最终得到真正长的类文件测试网站的很多不同部分。我可以将它们分成不同的类,但是我需要传递浏览器对象,看起来像是额外的开销。我还可以添加一个“代码文件”,我认为这个代码文件可以包含在我正在工作的主类中,并具有它的功能。什么是正确的方式来分解一个大的C#类文件到更小的文件?Watin C#类越来越大,最好的方法是什么

+0

你需要根据他们的域进行逻辑分区。在其他说明中:我会推荐代码生成器。 – DarthVader

+0

你是从Page类派生出来的,并将你的页面逻辑放在这些类中,对吧?如果没有,请仔细检查,因为这是一个巨大的帮助。 – OCary

回答

2

正如你所说,你的班级“测试很多网站的不同部分”为一个网站的单个部分制作一个班级。例如,您可以采取两个步骤进行重构。 1.使用partial关键字将课程分成几个文件。 2.逐步删除部分和重命名类名称accroding其响应性。

3

我会将它们分成按类似功能分组的文件,并使用partial关键字。

而且 -

如果你的类越来越那么大,我怀疑你是它装载了太多的责任。

1
Whats the right way to break up a big c# class file into smaller files? 

它把它分为单独的类。

一个类应该有一个目的,一个方法应该做一个单一的动作,好的代码应该解释自己。

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