2011-08-04 66 views

回答

5

在他无穷的智慧,乔恩斯基特曾经写道(在C#中的深度)“我很高兴来测试什么我可以在可能的最简单的方式”

恕我直言,如果你认为私人方法值得单元测试然后测试它。

+0

我同意。具体来说,我发现我的很多私有静态方法是单元测试私有成员的好选择。如果我有一些狭隘的方法,我真的不希望拖延到一些新的“帮手”类,这特别有用。 –

0

尽管测试所有私有方法/属性也不错,但真正重要的是您的公共方法/属性(即您公开的外部世界)。最终,您的私有方法/属性将以某种方式由您的公共方法/属性使用。

如果你想测试你自己的私有方法/属性,然后测试它们。但由于不会直接使用(而是间接使用),我不认为这是绝对必要的。

1

两个原因不测试私有方法:

1)脆性试验。私有方法是一个实现细节,您可能需要在将来更改它而不会破坏测试。

2)重复。私有方法中的代码应该由使用其公共接口来执行对象的测试覆盖。如果是这种情况,那么你只需要两次测试相同的东西。

+0

当然你想知道什么是休息时间,为什么以及如何改变私人方法? – puser

0

如前所述,如果您觉得需要并且您能够测试它,但请注意,如果有人修改私有方法的单元测试更有可能被破坏,这可能会变得很棒在一个大型项目中出现了很多单元测试的痛苦,我的建议是,只测试那些功能非常清晰,不太可能改变的方法。