Junit4: рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рд░рди рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдирд╡ре░ 2009  ┬╖  39рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: junit-team/junit4

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдХрд╣рд╛, @BeforeClass рдФрд░ @AfterClass рдХреЗ рд╕рд╛рде @BeforeParameterRun @AfterParameterRun рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдкрд╣рд▓реЗ/рдмрд╛рдж рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЧ рдЪрд▓рддреА рд╣реИред

feature parameterized

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рджреЛрд╕реНрддреЛрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд░рди рдХреЗ рд▓рд┐рдП "рдмрд╛рдж/рдкрд╣рд▓реЗ" рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рд╕рднреА 39 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@Before рдПрдиреЛрдЯреЗрд╢рди рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ: @Before(true) рдпрд╛ @Before(onEachParameter = true)ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЭреВрдареЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯред

рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХрд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд░рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рд╣реИред рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрджреЗрд╢ рдмреАрдкреА рдмреАрдЯреА рдЯреА1рдкреА1 рдПрдЯреА рдмреАрдЯреА рдЯреА2рдкреА1 рдПрдЯреА рдмреАрдЯреА рдЯреА3рдкреА1 рдПрдЯреА рдПрдкреА рдмреАрдкреА рдмреАрдЯреА рдЯреА1рдкреА2 рдПрдЯреА рдмреАрдЯреА рдЯреА2рдкреА2 рдПрдЯреА ... рдЬрд╣рд╛рдВ

  • рдмреАрдкреА рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд░рди рд╡рд┐рдзрд┐ рд╣реИ @BeforeParameterRun
  • рдмреАрдЯреА рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рд╣реИ @ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ
  • Txpy рдкреИрд░рд╛рдореАрдЯрд░ y @Test рдкрд░ xth рдЯреЗрд╕реНрдЯ рд╣реИ рдЬреИрд╕реЗ T2P3 рдкреИрд░рд╛рдореАрдЯрд░ 3 рдкрд░ рдЯреЗрд╕реНрдЯ 2 рд╣реИ
  • рдПрдЯреА рдЖрдлреНрдЯрд░ рдЯреЗрд╕реНрдЯ рдореЗрдердб рд╣реИ @ рдЖрдлреНрдЯрд░
  • рдПрдкреА рдЖрдлреНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд░рди рд╣реИ @AfterParameterRun

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЬреАрдердм рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдирд┐рдпреЛрдХреНрддрд╛ рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдиреАрдЪреЗ рд▓реЗ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рдбреЗрд╡рд┐рдб рд╕реИрдлрд╝ рдХреЛ рдПрдХ рдкреБрд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдирд┐рдХрд╛рд▓ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВ рдЙрд╕ рд╕рдВрд╢реЛрдзрди рд╕рдВрдЦреНрдпрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрд╣рд╛рдВ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рдж рдХреЛрдб рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд▓рдп 3 рдЕрдкреНрд░реИрд▓ 2009 рдХреЗ рдЖрд╕рдкрд╛рд╕ dsaff рдХреЗ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рд╣реБрдЖ рдерд╛ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдк bigmikef рд╕реЗ рдорд░реНрдЬ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдХрд╛рдо рдХрд┐рдпрд╛ред

рджреЛрд╕реНрддреЛрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд░рди рдХреЗ рд▓рд┐рдП "рдмрд╛рдж/рдкрд╣рд▓реЗ" рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдпрд╣ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрдиред рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

@RunWith(Parameterized.class)
public class ParameterRuleTest {
    @Parameters()
    public static Iterable<Object[]> data() {
        return Arrays.asList(new Object[]{}, new Object[]{});
    }

    <strong i="6">@Rule</strong>
    public ExternalResource externalResource = new ExternalResource() {
        protected void before() throws Throwable { System.out.println("before"); }
        protected void after() { System.out.println("after"); }
    };

    <strong i="7">@Test</strong> public void myTest1() { System.out.println("test"); }
}

рдпрд╣ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ

test
after
before
test
after

рдЕрдЧрд░ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред

@matthewfarwell рдореИрдВ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЖрдкрдиреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдо рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдзрд╛рд╡рдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЪрд▓реЗрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @bigmikef рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдзрд╛рд╡рдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ @ClassRule рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкрд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдиреАрдЪреЗ рд╣реИ:

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢:

рдЬреБрдиреАрдЯ рдХреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЬрд╛рд╡рд╛ рдХреНрд▓рд╛рд╕ рдкреНрд░рддрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ Parameterized рдзрд╛рд╡рдХ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд░рди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рддрд░реНрдХ рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдлрд╛рдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдкрд░рд┐рд╡рд░реНрдзрди / рд╕рдВрд╢реЛрдзрди:

org.junit.runners.Parameterized

  • ParameterRule рдирд╛рдордХ рдПрдХ рдирдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝реЗрдВред
  • рдПрдХ рдирдпрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ TestClassRunnerForParameters рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо SingleInstanceRunnerForParameters рд╣реИред
  • ParameterRule рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП TestClassRunnerForParameters рдпрд╛ SingleInstanceRunnerForParameters рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░реЗрдВред

org.junit.runners.BlockJUnit4ClassRunner

  • рдкрд░реАрдХреНрд╖рдг рд╡рд╕реНрддреБ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ methodBlock рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдПрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкрд░реАрдХреНрд╖рдг рд╡рд╕реНрддреБ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

    • рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ methodBlock. рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдЕрдиреНрдпрдерд╛ рдпрджрд┐ рдХреЛрдИ BlockJUnit4ClassRunner рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛: withRules , withMethodRules , withTestRules рдФрд░ getMethodRules

  • рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд╡рд╕реНрддреБ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ methodBlock рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рдореНрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рдЬреА рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдХреЛрдб рдХрд╛ рджреЛрд╣рд░рд╛рд╡ рдХрдо рд╣реЛрдЧрд╛:

    • withRules

    • withMethodRules

    • withTestRules

    • getMethodRules

org.junit.runners.Parameterized.SingleInstanceRunnerForParameters

  • withParameterRules рдирд╛рдо рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ $ ParameterRule рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧреАред
  • classBlock . рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ classBlock withParameterRules рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдпрджрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдкрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░рд╛рд╢рд┐ рдХрд╛ рдирд┐рд╡реЗрд╢ рдХрд░реВрдВ, рдореИрдВ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

@coreyjv @matthewfarwell рдХреЗ рдЙрддреНрддрд░ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?

@ Tibor17 , рдЙрдирдХреЗ рдЙрддреНрддрд░ рдкрд░ рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЦреЗрдВ: https://github.com/KentBeck/junit/issues/45#issuecomment -11293228

рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рдФрд░ рдЯрд┐рдпрд░ рдбрд╛рдЙрди рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рд░рди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк (рд╡рд░реНрддрдорд╛рди рдореЗрдВ @ClassRule рдореЗрдВ рд╕реНрдерд┐рдд) рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рдХрдХреНрд╖рд╛ ~ 20 рд╕реЗрдХрдВрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдФрд░ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рд╕реЗрдЯрдЕрдк рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рд╕реНрддрд░ рдирд┐рдпрдо рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ ~ 240 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рд╡рд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред

рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдореЗрдВ рд░рдЦ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдбрд┐рдЬрд╛рдЗрди рд╣реИред

@ Tibor17 , рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЕрдкрдбреЗрдЯ рдкрд░ рд╕реВрдЪрдирд╛рдПрдВ рдирд┐рдХрд▓рддреА рд╣реИрдВ рддреЛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдПрдХ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред

@dsaff , рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@coreyjv
рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ @BeforeParams рдФрд░ @AfterParams рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд╣реВ?

@ Tibor17 , рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣рд╛рдБред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдПрдХрд▓ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреНрд▓рд╛рд╕ (рдмреАрд╕реА) рдФрд░ рдПрд╕реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛?
рдмреАрд╕реА рдмреАрдкреА рдмреАрдЯреА рдЯреА1рдкреА1 рдПрдЯреА рдмреАрдЯреА рдЯреА2рдкреА1 рдПрдЯреА рдмреАрдЯреА рдЯреА3рдкреА1 рдПрдЯреА рдПрдкреА рдмреАрдкреА рдмреАрдЯреА рдЯреА1рдкреА2 рдПрдЯреА рдмреАрдЯреА рдЯреА2рдкреА2 рдПрд╕реА

@ Tibor17 , рд╣рд╛рдБ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╕рдЯреАрдХ рд╣реИред

@coreyjv
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдкрдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?

@ рдЯрд┐рдмреЛрд░17
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЬреБрдиреАрдЯ рдХреЛ рдЦрд┐рд▓рд╛рдП рдЧрдП рдкреГрд╖реНрда рд╕рд╛рдордЧреНрд░реА рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдФрд░ рдирд┐рд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореЗрд░реА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЪреАрдЬреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдкреГрд╖реНрда рдПрдХ рдЬреБрдиреАрдЯ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рд╣реБрдИ:

  • рдХреНрдпрд╛ рдХреЛрдИ рдХреНрд╖реЗрддреНрд░ рдореМрдЬреВрдж рд╣реИ?
  • рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ?
  • рдХреНрдпрд╛ рд▓реЗрдмрд▓ рдЯреЗрдХреНрд╕реНрдЯ "X" рд╣реИ?

рдпреЗ рдкреГрд╖реНрда рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреА рдЧрд╣рд░рд╛рдИ рдкрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ "рдкрд╣рд▓реЗ" рдирд┐рдпрдо (рд╡рд░реНрддрдорд╛рди рдореЗрдВ @ClassRule) рдореЗрдВ рдЧрдВрддрд╡реНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рдирд▓ рд▓реЙрдЬрд┐рдХ рд░рдЦрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЗрдВ "рд╕реЗрдЯрдЕрдк" рдореЗрдВ рдкрдврд╝рд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╡рд░рдг рдЬреИрд╕реЗ рдЖрдЗрдЯрдо рд╣реЛрдВрдЧреЗ рдЬреЛ рдЧрдВрддрд╡реНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред

рдореИрдВ рдкрд┐рдЫрд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ "рдЬреАрд╡рдирдЪрдХреНрд░" рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк (рд╡рд░реНрддрдорд╛рди рдореЗрдВ @ClassRule рдореЗрдВ рд╕реНрдерд┐рдд) рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░реА рдХрдХреНрд╖рд╛ ~ 20 рд╕реЗрдХрдВрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдФрд░ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рд╕реЗрдЯрдЕрдк рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рд╕реНрддрд░ рдирд┐рдпрдо рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ ~ 240 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рд╡рд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред

@coreyjv
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреИрд░рд╛ рдХреЛ рдирдП рдПрдиреЛрдЯреЗрдЯреЗрдб рд╕реЗрдЯрдЕрдк рдХреЗ рднреАрддрд░ рднреА рджрд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдЬрд░реВрд░рддреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдЕрд╡рд▓реЛрдХрди рджреЗрддрд╛ рд╣реИред
рдЬрд╛рд░реА рд░рдЦреЗрдВред

@ Tibor17 , рд╕реЗрдЯрдЕрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВред рдЖрдк рдореБрдЭреЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдпрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рдФрд░ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЖрд╡реЗрджрди рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдореЗрд░реА рдЬрд╝рд░реВрд░рдд рдХреА рдПрдХ рдЕрдЪреНрдЫреА рддрд╕реНрд╡реАрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ (рдЖрдк рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ) рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд┐рдд рдореВрд▓реНрдп рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

@coreyjv
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдПрдХ рдкреБрд▓ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

@ рдЯрд┐рдмреЛрд░17
рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рдареАрдХ рд╣реИ рдореИрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рдбрд┐рдЬрд╝рд╛рдЗрди" рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрдореЛрджрди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ред

@coreyjv
рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд░рдирд░ рдХрд╛ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдЕрдзреВрд░рд╛ рд╣реЛред
рджреВрд╕рд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣реЗрдВрдЧреЗ...

@ рдЯрд┐рдмреЛрд░17

рджреВрд╕рд░реЗ рдЯреЗрд╕реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣реЗрдВрдЧреЗ...

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдПрдХ рдирдореВрдирд╛ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХреА рддрд░рд╣ рд╣реИ (рдЬрд╣рд╛рдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ) рдФрд░ "рдЬреАрд╡рди рдЪрдХреНрд░" рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ @ClassRule рдпрд╛ @Rule рд╕реЗрдЯрдЕрдк рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓рд╛ рд╕реЗрдЯрдЕрдк рд╣реЛрдЧрд╛ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рдмреЗрд╣рдж рдорд╣рдВрдЧрд╛ рд╣реИред

@coreyjv

рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@BeforeParameter
public void static setup() { // flag this call in some variable and assert it's set }

@ рдЯрд┐рдмреЛрд░17
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░рдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ @ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

@coreyjv
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛрдб рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЖрдк рдПрдХ рдкреБрд▓ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@ рдЯрд┐рдмреЛрд░17
рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦреВрдВрдЧрд╛ рдФрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдирдП рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рддрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВ рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

рд╡рд┐рдЪрд╛рд░:

  1. рд╣рдореЗрдВ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореБрдЭреЗ рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред
  2. рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рд▓рдирд╛ рдмреНрд▓реЙрдХ (рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдзрд┐ рд╡рд┐рдзрд┐, рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреЗрд╕реНрдЯ) рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред
  3. ParameterRule рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд░реВрд▓ рдФрд░ рдХреНрд▓рд╛рд╕рд░реВрд▓ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред https://docs.google.com/document/d/1B6Z45BSGsY08rZqe2KUZTJ3RVsnUE1-HcXjl5MFm9ls/edit рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: ParameterRule рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрд▓рдлреИрдХреНрдЯреНрд░реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ TemporaryFolder рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреАред
  4. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рдХреЗ рддрддреНрдХрд╛рд▓ рдкреИрдЯрд░реНрди рдХреЛ рдПрдХрддрд░рдлрд╛ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рдПрдХ-рдЙрджрд╛рд╣рд░рдг-рдкреНрд░рддрд┐-рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдПред рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВред
рдмреАред рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде Parameterized рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рдПрдБред
рд╕реАред рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЙрд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛ рдпрджрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдореЗрдВ рдмрд╛рдВрдзрд╛ рдЧрдпрд╛ рд╣реЛред рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдо рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд░реНрдЧ рдореЗрдВ рд╣реА рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕реА рд╕реЗ рдмреА, рдФрд░ рдмреА рдХреЛ рдП рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реВрдВред

@dsaff

рд╣рдореЗрдВ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореБрдЭреЗ рдЗрдЪреНрдЫреБрдХ рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

рд╢реБрдХреНрд░рд┐рдпрд╛!

рд╣рдо рдХрд┐рд╕реА рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рд▓рдирд╛ рдмреНрд▓реЙрдХ (рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдзрд┐ рд╡рд┐рдзрд┐, рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреЗрд╕реНрдЯ) рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдореИрдВ рдирд┐рдЬреА рд╕реЗ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЧрдпрд╛ -> рд╕рдВрд░рдХреНрд╖рд┐рдд)ред

ParameterRule рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд░реВрд▓ рдФрд░ рдХреНрд▓рд╛рд╕рд░реВрд▓ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред https://docs.google.com/document/d/1B6Z45BSGsY08rZqe2KUZTJ3RVsnUE1-HcXjl5MFm9ls/edit рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд╣рд╛рдВ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: ParameterRule рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрд▓рдлреИрдХреНрдЯреНрд░реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ TemporaryFolder рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреАред

рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреВрдВрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рдХреЗ рддрддреНрдХрд╛рд▓ рдкреИрдЯрд░реНрди рдХреЛ рдПрдХрддрд░рдлрд╛ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рдПрдХ-рдЙрджрд╛рд╣рд░рдг-рдкреНрд░рддрд┐-рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди @ParameterRule рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рд╕рд╢рд░реНрдд рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрд╢рди рдкреИрдЯрд░реНрди рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред

рдПред рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдпрд╛ рдПрдиреЛрдЯреЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВред

рдКрдкрд░ рджреЗрдЦреЛред

рдмреАред рд╡рд┐рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде Parameterized рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рдПрдБред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рднреА рдареАрдХ рд░рд╣реВрдВрдЧрд╛ред рдореЗрд░реА рд╡рд┐рдЪрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореМрдЬреВрджрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдереА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рд╡рд░реНрддрдХ рдХрд╛ рдЗрд░рд╛рджрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рдерд╛ред

рд╕реАред рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЙрд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛрдЧрд╛ рдпрджрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдореЗрдВ рдмрд╛рдВрдзрд╛ рдЧрдпрд╛ рд╣реЛред рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдо рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд░реНрдЧ рдореЗрдВ рд╣реА рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ...

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдореИрдВ рдЕрднреА рднреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ @ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рдзрд┐ рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдкреНрд░рддрд┐ рд╕рд░рдгреА рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░реВрдВ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рд╣реЛ?

@coreyjv , рд╣рд╛рдБ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдб рд╣реИ рддреЛ рдЖрдк рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реИрдВ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

@dsaff

рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реВрдБрдЧрд╛ред

@dsaff
@coreyjv

рдХреНрдпрд╛ рдХрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реБрдЖ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЬреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬреЛ рдЖрдИрдИ/рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕/рдХреНрд░реЛрдо рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рд░реЛрдХрдирд╛ред рдЕрдЧрд░ рдореИрдВ рдкрд╣рд▓реЗ рдХреНрд▓рд╛рд╕ рдФрд░ рдЖрдлреНрдЯрд░рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдореЛрдЯ рд╡реЗрдм рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ AfterParameterRun рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд╣реБрдд рд╕реА рдЪрд░реНрдЪрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреБрдЫ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреБрдЫ рднреА рдХрднреА рдореБрдЦреНрдп рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рдерд╛?
рдзрдиреНрдпрд╡рд╛рдж,
рдмреНрд░рд╛рдбрд▓реА

рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдПрдХ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ 'рдЖрдлреНрдЯрд░ рдкреИрд░рд╛рдореАрдЯрд░' рдлрд╝рдВрдХреНрд╢рди рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

@coreyjv рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдРрд╕реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред @BeforeParam рдФрд░ @AfterParam рджреЛрдиреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред

@рдмрд┐рд▓реЗрд╢рдЧ --

рдкреНрд░рддрд┐ @dsaff рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ 'рдореЙрдердмреЙрд▓' рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рд╡рд╣ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрд╕реЗ рдЯрд╛рд▓ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рдЕрдм рдЬреБрдиреАрдЯ 5 рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ (рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдкреНрд░рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ)ред

@coreyjv рдареАрдХ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдпреЗ рдзрдиреНрдпрд╡рд╛рджред рдЕрд╕рд▓ рдореЗрдВ, рдореБрдЭреЗ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА - рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдЧрд┐рдирддреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдЗрд╕ рдкреНрд░рд╢реНрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ "@ BeforeParam /@AfterParam рдкреИрд░рд╛рдореАрдЯрд░реЗрдЯреЗрдб рд░рдирд░ #1435 рдХреЗ рд▓рд┐рдП" рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рдФрд░ 4.13 рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ 4.13 рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ? рдХрдм? рдореБрдЭреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕рдЦреНрдд рдЬрд░реВрд░рдд рд╣реИ! рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬреБрдиреАрдЯ 5 рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХрдм @BeforeParam/ @AFteParam рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@dstaraster рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ JUnit рдЯреАрдо JUnit 5.0 рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╣рдо 4.13 рд░рд┐рд▓реАрдЬ рдкрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@kcooney рдореБрдЭреЗ рдЗрди @BeforeParam рдФрд░ @AfterParam рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ (рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрднреА рддрдХ рдореЗрд░реЗ рд╣рдЬрд╛рд░реЛрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ JUnit5 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ)ред
рдХреНрдпрд╛ 4.13 рд░рд┐рд▓реАрдЬ рдЕрднреА рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ?

@raubel I рдиреЗ 4.13 рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #1496 рдЦреЛрд▓рд╛ред

JUnit5 JUnit4-рд╢реИрд▓реА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ JUnit5 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕