据我所知,测试私有方法的正确方法是通过反射?因此,如果我们通过反射测试一个方法,我们需要创建一个类的实例,获取方法,调用它,等等。然而,如果我们创建的类使用了来自其他对象的数据,这些对象将返回null /为null,而没有正确的先前创建的对象,我们该怎么办?
谢谢
发布于 2012-03-04 19:20:52
据我所知,测试私有方法的正确方法是通过反射吗?
这是唯一的方法(如果您只测试私有方法,而不是调用私有方法的其他公共方法),因为您不能从类的外部访问私有方法(反射除外)。我通常不会为私有方法编写单独的测试,但它可能会很有用。
如果我们创建的类使用来自其他对象的数据,这些对象将返回null /为null,而没有正确的先前创建的对象,我们该怎么办。
在单元测试中,您可以使用模拟库(如Mockito或some other )“模拟”外部依赖项,或者编写匿名或单独的模拟类来实现依赖项的接口。其思想是为外部依赖项定义一些确切的行为,这样它们的行为就不会影响实际类的测试。如果包含引用的字段是私有的,则需要使用反射将对象注入其中。
在集成测试中,您将使用外部依赖项的实际实现。
https://stackoverflow.com/questions/9554416
复制相似问题