单元测试公共类中的私有类?

时间:2013-01-16 15:41:05

标签: unit-testing

是否可以对私人课程进行单元测试?我有类似

的东西
     public class ClassA: ClassB    
      {     
         private class ClassX: ClassY   
         { 
            public static int TestMethod(int numberA, int numberB) 
               { 
               return numberA + numberB
               }  
          }
       }

我想测试" TestMethod"但无法访问它。我尝试使用Class A和Class Y为私有ClassX创建新实例,但它不允许我访问" TestMethod"

2 个答案:

答案 0 :(得分:2)

测试私人成员不是一个好习惯。它们应该使用公开的暴露成员进行测试。

但是,如果您使用的是MSTest,则可以使用accessors

如果您正在使用其他测试框架,则可以使用reflection

以上适用于.NET。我不知道如何在其他语言中实现相同(如果你要求java /其他语言)。

答案 1 :(得分:1)

在某个地方应该有一个公共方法来调用私有类中的方法。您应该对该方法进行单元测试。如果你无法通过公共接口访问私有方法,那么可能不需要私有方法开始。