2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
只需將方法變量移動(dòng)到成員變量...就像這樣:
int bar = getBarFromSomething();
@BeforeEach
void foo() {
setupSomethingWithBar(bar);
}
然后
@Test
void test_baz() {
assertEquals(bar, 5);
}
應(yīng)該管用

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
沒有特定于大學(xué)的設(shè)施來支持您的想法。
除非您使用@TestInstance(Lifecycle.PER_CLASS),否則將為每個(gè)測(cè)試調(diào)用創(chuàng)建測(cè)試類的新實(shí)例。
但更好的方法是使用帶有@MethodSource的參數(shù)化測(cè)試,并在給定部分的某處測(cè)試中正確執(zhí)行設(shè)置。這正是 @ParametrizedTests 想要解決的任務(wù)。
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestSample {
? ?@ParameterizedTest
? ?@MethodSource("bars")
? ?fun isFive(bar:Int){
? ? ? ?setupSomethingWithBar(bar)??
? ? ? ?assertEquals(bar, 5)
? ?}
? ?fun bars() = (1..10).asSequence().asStream()
}
添加回答
舉報(bào)