Junit测试方法

我一直对Junit中的方法感到困惑。

  • 如果有人问我是否可以在Junit中使用Private / Protected测试方法,那么他是在讨论应该从测试还是其他任何方法(如Junit中的setup(),teardown())开始的方法。

  • 什么是Junit方法的返回类型。 所以我总是看到返回类型使用是无效的,所以我们可以改变返回类型吗?

  • 现在有时候问题会出现,就像我可以使用Junit测试私有方法一样。 因此,尽我所知,默认情况下,Junit调用将以test开始的方法,它应该是Public,然后才能使用Junit在类之外调用。 因此,如果我将测试方法声明为私有,Junit会如何调用它或在课程之外对其进行测试。


  • 1)你的测试方法应该是公开的。

    2)返回类型总是无效的。

    3)你不测试你在你的类中测试公共方法的私有方法,这反过来可能会调用你的私有方法中的逻辑。 您应该尝试覆盖这些私有方法中的所有代码分支。


    来自org.junit.Test注释文档

    Test注解告诉JUnit它所连接的public void方法可以作为测试用例运行


    为了测试私有方法,我建议让它们受到保护或包保护。 然后,您可以创建一个覆盖该方法并对其进行测试的子类。

    我已经看到很多帖子坦率地说,你不能测试私有方法。 我无法想象不太有用的straitjacketing。 如果你试图重构你的代码,你有责任让自己和你周围的每个人都创建一组测试,以确保在你开始修改代码之前保留这些功能。 随着回归问题的妥善设置,您可以开始重构/重测/重构。

    同样,内部方法往往是故障识别或恢复的地方。 对这些方法的测试要求对数据进行适当的防火墙,并确认“不可能”的情况。 还应该检查恢复操作,以确定它们也处理“不可能”的情况。

    使用反射来测试私有方法是最后的手段,但如果您不能更改被测试的类或者您有管理的订单,则可能需要使用反射。 “不好的做法”是你违反封装。 然而,封装仅仅是黑箱测试所关心的问题; 白盒测试的过程涉及到所有的代码是否工作,而不仅仅是可见的东西。

    链接地址: http://www.djcxy.com/p/64103.html

    上一篇: Junit Test Method

    下一篇: JUnit testing with multiple test cases in a method