рдЖрдЬ,
рдкрд░реАрдХреНрд╖рдг-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ (рдЯреАрдбреАрдбреА) рддреЗрдЬреА рд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рддрдХрдиреАрдХ рдЬреЛ рдкрд╣рд▓реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрддреА рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреЛрдб рди рдХреЗрд╡рд▓ рд▓рд┐рдЦрд┐рдд рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
рддреЛ, рддрдХрдиреАрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрди рдмрд╣реБрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕ рдФрд░ рдЕрдиреНрдп рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдореИрдВ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдареАрдХ рд╣реИ, рдореИрдВ, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪрд╛
JUnit рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ред рдпрд╣ JUnit 3 рдФрд░ JUnit 4 рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рджреЛрдиреЛрдВ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреБрд░рд╛рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ 3rd рд╡рди, рдЬреЛ рдЬрд╛рд╡рд╛ 1.4 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЕрднреА рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдХрд┐рд╕реА рднреА рдореВрд▓ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓реЗрдЦрдХ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рд╢рд╛рдпрдж рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рд▓реНрд▓реА рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░реЗрдВред
рдЬреВрдирд┐рдд рей
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдЯреЗрд╕реНрдЯрдХреЗрд╕ рд╕реЗ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ
рд╕реЗрдЯрдЕрдк рдФрд░
рдЯрд┐рдпрд░рдбрд╛рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЯреЗрд╕реНрдЯ рддрд░реАрдХреЗ рдмрдирд╛рдПрдВ (
рдЯреЗрд╕реНрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдЬрдм рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рд╣реИ), рдлрд┐рд░
рд╕реЗрдЯрдЕрдк рд╡рд┐рдзрд┐
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ , рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ,
рдЖрдВрд╕реВ рд╡рд┐рдзрд┐ рдХреЛ
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрджрд┐ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреЛрдЯ: рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпрд╛рдБ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП,
рд╕реНрдереИрддрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреБрдЫ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдЪреЗрдХ рдХреЛ рдЕрдХреНрд╕рд░
рдПрд╕реНрдЯрд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдХрднреА-рдХрднреА
рдПрд╕реНрдЯрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ
рд╣реИрдВ ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ:
public abstract class StringUtils { private static final int HI_BYTE_MASK = 0xf0; private static final int LOW_BYTE_MASK = 0x0f; private static final char[] HEX_SYMBOLS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', }; public static boolean isEmpty(final CharSequence sequence) { return sequence == null || sequence.length() <= 0; } public static String toHexString(final byte[] data) { final StringBuffer builder = new StringBuffer(2 * data.length); for (byte item : data) { builder.append(HEX_SYMBOLS[(HI_BYTE_MASK & item) >>> 4]); builder.append(HEX_SYMBOLS[(LOW_BYTE_MASK & item)]); } return builder.toString(); } }
рд╣рдо JUnit 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВрдЧреЗред рдпрд╣ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ, рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдоред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
isEmpty рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг:
public void testIsEmpty() { boolean actual = StringUtils.isEmpty(null); assertTrue(actual); actual = StringUtils.isEmpty(""); assertTrue(actual); actual = StringUtils.isEmpty(" "); assertFalse(actual); actual = StringUtils.isEmpty("some string"); assertFalse(actual); }
рдбреЗрдЯрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЛ
рд╕реЗрдЯрдЕрдк рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдЖрдк рдбреЗрдЯрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рддрд░реНрдХ рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
public class StringUtilsJUnit3Test extends TestCase { private final Map toHexStringData = new HashMap(); protected void setUp() throws Exception { toHexStringData.put("", new byte[0]); toHexStringData.put("01020d112d7f", new byte[] { 1, 2, 13, 17, 45, 127 }); toHexStringData.put("00fff21180", new byte[] { 0, -1, -14, 17, -128 });
рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╕рдореВрд╣ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
TestSuite рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
public class StringUtilsJUnit3TestSuite extends TestSuite { public StringUtilsJUnit3TestSuite() { addTestSuite(StringUtilsJUnit3Test.class); addTestSuite(OtherTest1.class); addTestSuite(OtherTest2.class); } }
рдЖрдк рдПрдХ рд╣реА рдЯреЗрд╕реНрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд░рд┐рдкреАрдЯреЗрдбрдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
public class StringUtilsJUnit3RepeatedTest extends RepeatedTest { public StringUtilsJUnit3RepeatedTest() { super(new StringUtilsJUnit3Test(), 100); } }
ExceptionTestCase рд╕реЗ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдЖрдк
рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
public class StringUtilsJUnit3ExceptionTest extends ExceptionTestCase { public StringUtilsJUnit3ExceptionTest(final String name) { super(name, NullPointerException.class); } public void testToHexString() { StringUtils.toHexString(null); } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ рднреА рдЧрд╛рдпрдм рд╣реИрдВ)ред
рдЬреВрдирд┐рдд рек
рдЬрд╛рд╡рд╛ 5 рд╕реЗ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЕрдм рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рд╣реИ, рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд▓рдЧрднрдЧ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ (
рд░рд┐рдкреАрдЯрдЯреЗрд╕реНрдЯ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдпрд╣ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИ)ред
рддреЛ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ?
рдХреБрдВрдЬреА рдПрдиреЛрдЯреЗрд╢рди
рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░:
public class StringUtilsJUnit4Test extends Assert { private final Map<String, byte[]> toHexStringData = new HashMap<String, byte[]>(); @Before public static void setUpToHexStringData() { toHexStringData.put("", new byte[0]); toHexStringData.put("01020d112d7f", new byte[] { 1, 2, 13, 17, 45, 127 }); toHexStringData.put("00fff21180", new byte[] { 0, -1, -14, 17, -128 });
рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ?
- рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрд╕реЗрд░ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
- рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдПрдиреЛрдЯреЗрд╢рди рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЯреЗрд╕реНрдЯ рд░рди рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛; рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реАрд╕реЗрдЯ рдЖрдорддреМрд░ рдкрд░ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреА рдкреАрдврд╝реА рд╣реИ ( setUpToHexStringData рд╡рд┐рдзрд┐)ред
- @BeforeClass рдПрдиреЛрдЯреЗрд╢рди рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдХреЗ рддреБрд░рдВрдд рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╢реВрдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реАрд╕реЗрдЯ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдХрдХреНрд╖рд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реАрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рдЬрдм рдХрдИ рдкрд░реАрдХреНрд╖рдг рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдордп рдмрдирд╛рдиреЗ рдореЗрдВ рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВред
- рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рдж рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд░реАрдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ ( рдЖрдВрд╕реВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдирд╛ )ред
- @AfterClass рдПрдиреЛрдЯреЗрд╢рди @BeforeClass рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ @BeforeClass рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╢реВрдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдПрдиреЛрдЯреЗрд╢рди рдЯреЗрд╕реНрдЯ рдХрд╛ рдорддрд▓рдм рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рд╣реИред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреЗрдХ рдпрд╣рд╛рдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдЕрдкреЗрдХреНрд╖рд┐рдд - рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрдкрд╡рд╛рдж рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ - рдЙрд╕ рд╕рдордп рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
@Test(expected = NullPointerException.class) public void testToHexStringWrong() { StringUtils.toHexString(null); } @Test(timeout = 1000) public void infinity() { while (true); }
рдпрджрд┐ рдХрд┐рд╕реА рдЧрдВрднреАрд░ рдХрд╛рд░рдг рд╕реЗ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕реБрдзрд╛рд░ рдПрдХ рдЙрдЬреНрдЬреНрд╡рд▓ рднрд╡рд┐рд╖реНрдп рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдЗрд╕реЗ
@Ignore рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдПрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
@Ignore @Test(timeout = 1000) public void infinity() { while (true); }
рдирд┐рдпрдо
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрд▓реНрдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реИ - рдирд┐рдпрдоред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ (
TemporaryFolder ), рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрдкрд╡рд╛рдж (
ExpectedException ) рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг (
рдЯрд╛рдЗрдордЖрдЙрдЯ ) рдХреЗ рд▓рд┐рдП
рд╕рдордп -рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рдпрдо рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдореЗрдердб рдирд┐рдпрдо рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЧреИрд░-
рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ
рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
public class OtherJUnit4Test { @Rule public final TemporaryFolder folder = new TemporaryFolder(); @Rule public final Timeout timeout = new Timeout(1000); @Rule public final ExpectedException thrown = ExpectedException.none(); @Ignore @Test public void anotherInfinity() { while (true); } @Test public void testFileWriting() throws IOException { final File log = folder.newFile("debug.log"); final FileWriter logWriter = new FileWriter(log); logWriter.append("Hello, "); logWriter.append("World!!!"); logWriter.flush(); logWriter.close(); } @Test public void testExpectedException() throws IOException { thrown.expect(NullPointerException.class); StringUtils.toHexString(null); } }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛
рд╣реИ ред
Zapuskalki
рд▓реЗрдХрд┐рди рдврд╛рдВрдЪреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдкрд░реАрдХреНрд╖рдг
@RunWith рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдХреЛ
рд░рдирд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрди рдЪреМрдЦрдЯреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╣реА рдЖрддреЗ рд╣реИрдВред
JUnit4 - рдбрд┐рдлрд╝реЙрд▓реНрдЯ
рд▓рд╛рдВрдЪрд░ , рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, JUnit 4 рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
JUnit38ClassRunner рдХреЛ JUnit 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реБрдЗрдЯрдореИрдереЛрдб рдпрд╛
рдСрд▓рд╕реНрдЯреИрдЯреНрд╕ рдХреЛ рдЬреЗрдпреВрдиреЗрдЯ 3 рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рд▓реЙрдиреНрдЪрд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХреНрд▓рд╛рд╕ рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ рдореЗрдердб рд╕реВрдЯ рдХреЗ рд╕рд╛рде рдкрд╛рд╕ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрд╕реНрдЯ (рд╕рднреА рдЯреЗрд╕реНрдЯ рдХрд╛ рдХреНрд░рдо) рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рд╕реБрдЗрдЯ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдХреЗрд╡рд▓ JUnit 4 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдПред
@SuiteClasses рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рдирд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
@Suite.SuiteClasses( { OtherJUnit4Test.class, StringUtilsJUnit4Test.class }) @RunWith(Suite.class) public class JUnit4TestSuite { }
рдПрдирдХреНрд▓реЛрдЬреНрдб рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп, рд╕рднреА рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ - рд╢реНрд░реЗрдгрд┐рдпреЛрдВ (рд╕рдореВрд╣реЛрдВ) рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реНрд░реЗрдгреА рдХреЛ
@ рд╢реНрд░реЗрдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ
рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ , рдлрд┐рд░ рд╕реБрдЗрдЯ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг
рдпреЛрдЧреНрдп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:
public class StringUtilsJUnit4CategoriesTest extends Assert {
Parameterized рдПрдХ рдмрд▓реНрдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рд▓рд╛рдВрдЪрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдШреЛрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдХреНрд▓рд╛рд╕ рдореЗрдпрд░ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@RunWith(Parameterized.class) public class StringUtilsJUnit4ParameterizedTest extends Assert { private final CharSequence testData; private final boolean expected; public StringUtilsJUnit4ParameterizedTest(final CharSequence testData, final boolean expected) { this.testData = testData; this.expected = expected; } @Test public void testIsEmpty() { final boolean actual = StringUtils.isEmpty(testData); assertEquals(expected, actual); } @Parameterized.Parameters public static List<Object[]> isEmptyData() { return Arrays.asList(new Object[][] { { null, true }, { "", true }, { " ", false }, { "some string", false }, }); } }
рд╕рд┐рджреНрдзрд╛рдВрдд - рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ред рдбреЗрдЯрд╛
@DataPoints рдФрд░
@DataPoint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкрджреНрдзрддрд┐ рдХреЛ
рдереНрдпреЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
@RunWith(Theories.class) public class StringUtilsJUnit4TheoryTest extends Assert { @DataPoints public static Object[][] isEmptyData = new Object[][] { { "", true }, { " ", false }, { "some string", false }, }; @DataPoint public static Object[] nullData = new Object[] { null, true }; @Theory public void testEmpty(final Object... testData) { final boolean actual = StringUtils.isEmpty((CharSequence) testData[0]); assertEquals(testData[1], actual); } }
рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдиреЗрдЯ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓реЙрдиреНрдЪрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЬреБрдиреАрдд рдкрд░ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдФрд░ рд╡реНрдпрд╡рд╕рд╛рдп рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдпрдореЛрдВ рдФрд░ рд▓реЙрдиреНрдЪрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЕрднреА рднреА рдЕрдкрдиреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде
рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг
рдЧрд┐рддреБрдм рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рд╣рд┐рддреНрдп