小编jsw*_*wny的帖子

将参数从JUnit 5 @BeforeEach传递到单个测试

假设我有一个@BeforeEach使用外部方法来获取值并使用该值进行设置的方法:

@BeforeEach
void foo() {
  int bar = getBarFromSomething();
  setupSomethingWithBar(bar);
}
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够在方法在测试用例之前被调用之后,将值bar(每次getBarFromSomething()调用可能会改变)传递给每个单独foo()的测试用例。我想这样做,以便可以使用在@BeforeEach foo()方法调用中设置的参数来测试某些内容:

@Test
void test_baz(int bar) {
  assertEquals(bar, 5);
}
Run Code Online (Sandbox Code Playgroud)

我应该如何将参数从@BeforeEach foo()调用传递给每个@Test个案?我不认为参数化测试会起作用,因为生成的方法bar可能会输出不同的结果,因此每次每次运行都只需要调用一次,@BeforeEach并且@Test需要在foo()调用中使用它进行设置。

java junit junit5

0
推荐指数
1
解决办法
71
查看次数

标签 统计

java ×1

junit ×1

junit5 ×1