这样的状态的方法的单元测试,我有以下的(使用C#)的问题:关于改变私人领域
我有两个私人领域中的一类,一个是节省了场的原始状态还有一个保存更新的状态。
我现在想编写一个基本上采用原始状态的方法,将其复制到更新的状态并更改它的一些内容。
到目前为止,我已经实现,作为一个无效的方法,只是改变字段的状态(如果需要)。这些字段稍后将被另一种方法使用。
我不认为我会有任何实施的麻烦,但我想为这种方法编写单元测试(与MSTest),并不能看到我可以如何正确地测试这个。
我真的需要测试的是给定输入参数的字段内容与原始状态相比是否发生了变化。由于这两个字段都是私有的,我不能访问原始状态来为单元测试设置一个值,也不能访问这些字段以用于任何断言的比较。
最简单的方法是公开所有这些领域与公共属性,但我真的没有用于公共属性除了单元测试。另一种方法是重写方法以返回更新后的状态,但这仍然不能帮助我将原始状态设置为测试所需的状态。
关于如何解决这个问题的任何想法或最佳实践?
我认为这是我正在寻找的。我实际上改变了原来的状态并返回更新后的状态,这使得它可以自行测试。我不确定是否对该解决方案感到满意,所以我可能会返回到前一个迭代,并更新测试以使用PrivateObject。无论如何,这是非常好的知道未来的测试。 – 2011-05-16 09:06:21