当前位置: 首页 > 面试题库 >

setUp()和setUpBeforeClass()之间的区别

拓拔德馨
2023-03-14
问题内容

使用JUnit进行单元测试时,有两种相似的方法setUp()setUpBeforeClass()。这些方法有什么区别?另外,tearDown()和之间有什么区别tearDownAfterClass()

这是签名:

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

问题答案:

@BeforeClass@AfterClass注解的方法将你的测试运行期间只有一次运行-
在测试整体的开始和结束,什么都运行之前。实际上,它们是在构建测试类之前运行的,这就是为什么必须声明它们的原因static

@Before@After方法将在每次测试案例之前和之后运行,所以在测试运行期间可能会多次运行。

因此,假设您在类中进行了三个测试,则方法调用的顺序为:

setUpBeforeClass()

  (Test class first instance constructed and the following methods called on it)
    setUp()
    test1()
    tearDown()

  (Test class second instance constructed and the following methods called on it)
    setUp()
    test2()
    tearDown()

  (Test class third instance constructed and the following methods called on it)
    setUp()
    test3()
    tearDown()

tearDownAfterClass()


 类似资料:
  • 我的主要问题是Inno Setup是否也会创建一个像launch4j一样的.exe文件?还是需要用Launch4j创建.exe文件并用Inno安装程序打包应用程序?

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:

  • 问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。

  • 问题内容: 有人可以解释一下 和 我不知道“确切”的含义 问题答案: 在这个例子中,什么都没有。当您具有多个具有相似名称的路径时,该参数将起作用: 例如,假设我们有一个显示用户列表的组件。我们还有一个用于创建用户的组件。的网址应嵌套在下。因此,我们的设置可能如下所示: 现在,这里的问题是,当我们转到路由器时,将通过所有定义的路由,并返回它找到的第一个匹配项。因此,在这种情况下,它将首先找到路线,然

  • 问题内容: 我很好奇printStackTrace()和toString()之间的区别是什么。乍一看,他们 似乎 做的完全相同。 码: 问题答案: 不,有重要区别!使用toString,您只有异常的类型和错误消息。使用printStackTrace()可以获得异常的整个堆栈跟踪,这对于调试非常有帮助。 System.out.println(toString())的示例: printStackTra