
рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рднрдпрд╛рдирдХ рдкреЙрдбрдХрд╛рд╕реНрдЯ
рдбреЗрдмреНрд░реАрдбрд┐рдВрдЧ рдкреЙрдбрдХрд╛рд╕реНрдЯ рдореЗрдВ рдореНрдпреВрдЯреЗрд╢рди рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЗрд╕реЗ
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдкрдврд╝рд╛ рд╣реЛрдЧрд╛ред рдЬреЛ рд▓реЛрдЧ рдЕрднреА рднреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдБред
рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдХреЗрд▓ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреА рдЧрд┐рдирддреА рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реИрдВрдбрдо рдХреНрд▓рд╛рд╕реЗрд╕, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдпрдерд╛
рдореНрдпреВрдЯреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ , рдХреЛ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдПрдХ рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реБрдЖ, рдЬреЛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрднрд╛рд╡рд┐рдд рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
рдпрд╣ рдерд╛: |
if(somevalue < threshold) { doSomething(); }
|
рдпрд╣ рдмрди рдЧрдпрд╛: |
if(somevalue >= threshold) { doSomething(); } |
рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд┐рд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ
рдкрд┐рдЯрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд
рдХрд░реВрдВрдЧрд╛ , рдпрд╣ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдВред
рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдЖрдЗрдП рдПрдХ рдПрдХрд▓ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓
[ рдЧрд┐рдЯрдм ] рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ:
1 2 3 4 5 6 8 | public class ClassToTest { private static final double THRESHOLD = 10.0; public static boolean threshold(double value) { return value >= THRESHOLD; } } |
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ:
1 2 3 4 5 | @Test public void testThreshold() { Assert.assertTrue(ClassToTest.threshold(10.0)); Assert.assertFalse(ClassToTest.threshold(9.0)); } |
рдкрд┐рдЯрд╛рд░реЗрд╕реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЗрд╕рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдорд╛рд╡реЗрди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>0.25</version> <configuration> <inScopeClasses> <param>com.example*</param> </inScopeClasses> <targetClasses> <param>com.example*</param> </targetClasses> </configuration> </plugin> |
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░:
inScopeClasses
рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
targetClasses
рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬрд┐рдирдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА
рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред
рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ: рдЖрдк рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдиреБрдЕрд▓
рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз
рд╣реИ ред
рдФрд░ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреБрд╢реА рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:
mvn org.pitest:pitest-maven:mutationCoverage |
рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд╕рдордЭрдирд╛
рдЪреЗрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд▓реЙрдЧ рдХреА рдПрдХ рдмрдбрд╝реА рд╢реАрдЯ рдорд┐рд▓рддреА рд╣реИред рдЗрд╕реЗ рдкрдврд╝рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди
target/pit-reports/%TIMESTAMP%
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЗ рд╕рдорд╛рди рдПрдХ HTML рд░рд┐рдкреЛрд░реНрдЯ рднреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдпрд╣рд╛рдВ рд▓рд╛рдЗрди 14 рдХреЗ рдкрд╛рд╕ рдирдВрдмрд░ рддреАрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрди рдореЗрдВ рдХрд┐рддрдиреЗ рдореНрдпреВрдЯреЗрд╢рди рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдЦрдВрдб рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рдерд╛ред
рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо
- KILLED - рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдПред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рджреЗрд╢ рдореЗрдВ рд╕рднреА рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИред
- рд╕рд░реНрд╡реЗрдХреНрд╖рдг - рдореНрдпреВрдЯреЗрд╢рди рдкрд░ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЧрдпрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- TIMED_OUT - рдкрд░реАрдХреНрд╖рдг рдиреЗ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк)
- NON_VIABLE - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЙрддреНрдкрдиреНрди рдмрд▓реНрд▓рд╛ рдХреЛрдб рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЧрдпрд╛ (рдпрд╣ рдмрд╣реБрдд рдХрдо рд╣реА рд╣реЛрддрд╛ рд╣реИ)
- MEMORY_ERROR - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд▓рдЧрд╛ рдФрд░ OOM рд╕реЗ рдЧрд┐рд░ рдЧрдпрд╛
- RUN_ERROR - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ
рдореНрдпреВрдЯреЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░
рдлрд┐рд▓рд╣рд╛рд▓, рдХреЗрд╡рд▓ 11 рдореНрдпреВрдЯреЗрд╢рди рд╣реИрдВред рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИрдВред
- CONDITIONALS_BOUNDARY - рдЪреЗрдХ рдореЗрдВ рд╕рдЦреНрдд рдЕрд╕рдорд╛рдирддрд╛рдУрдВ рдХреЛ рдЧреИрд░-рд╕рдЦреНрдд рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<=
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ - NEGATE_CONDITIONALS - рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
==
рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ !=
- MATH - рдкреНрд░рдпреБрдХреНрдд рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдЗрдирд╕ рдХреЛ рдкреНрд▓рд╕ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред
- рд╕рд╛рдордЧреНрд░реА - рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреЗ рд╕рд╛рде рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ
- INVERT_NEGS - рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдХреЗрдд рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ
- INLINE_CONSTS - рдЕрдкрдиреА рдЬрдЧрд╣ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдореВрд▓реНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рд╢рд╛рдмреНрджрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
42
рдХреЛ 43
рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ false
рдХреЛ true
рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ true
- RETURN_VALS - рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдорд╛рди рдХреЛ рдХреБрдЫ рдЕрдиреНрдп рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреВрд░реНрдг рд╡рд╕реНрддреБ рдХреЗ рдмрдЬрд╛рдп, рдЕрд╢рдХреНрдд рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- VOID_METHOD_CALLS - рд╢реВрдиреНрдп рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ
- NON_VOID_METHOD_CALLS - рдЧреИрд░-рд╢реВрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (
false
, 0
, null
) - CONSTRUCTOR_CALLS - рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- EXPERIMENTAL_INLINE_CONSTS - INLINE_CONSTS рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣рдж рддрдХ рдЕрдзрд┐рдХ рд╕реНрдорд╛рд░реНрдЯ
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдореНрдпреВрдЯреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ (2 рдкреАрд╕реА) рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдореЗрдВ рдереЗред рдЕрдм рдЕрдзрд┐рдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдХреНрд╖рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class ClassToTest { private int invocationCount = 0; private static final double OFFSET = 1.0; private final double threshold; public ClassToTest(double threshold) { this.threshold = threshold; } public boolean threshold(double value) { logInvocation(); return value >= threshold + OFFSET; } private void logInvocation() { invocationCount++; } } |
рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣рдо рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:
1 2 3 4 5 6 7 | @Test public void testThreshold() { ClassToTest classToTest = new ClassToTest(10.0); Assert.assertTrue(classToTest.threshold(11.0)); Assert.assertFalse(classToTest.threshold(10.0)); } |
рдХреЛрдб рдХрд╡рд░реЗрдЬ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЬрд▓реНрджреА рд╕реЗ рд╣рдореЗрдВ рд╣рд╛рде рд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ рдФрд░ рдХрд╣реЗрдВрдЧреЗ: рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

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