JavaRush /ื‘ืœื•ื’ Java /Random-HE /JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.
Sdu
ืจึธืžึธื”

JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ื ืžืืก ืœืš ืœื”ืงืœื™ื“ ื ืชื•ื ื™ ื‘ื“ื™ืงื” ื‘ืงื•ื ืกื•ืœื” ืขืฉืจื•ืช ืคืขืžื™ื ื›ื“ื™ ืœื‘ื“ื•ืง ืืช ื”ืžืฉื™ืžื” ืฉืœืš? ื‘ืจื•ืš ื”ื‘ื ืœื—ืชื•ืœ, ืื ื™ ืื’ื™ื“ ืœืš ืžื” ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืื™ืชื•. ื”ืžื˜ืจื” ื”ืกื•ืคื™ืช ืฉืœ ื—ื•ืžืจ ื–ื” ืชื”ื™ื” ืœื”ืคื•ืš ืืช ื”ื”ืฉืงื” ืฉืœ ื”ืžืฉื™ืžื” ื”ื ืคืชืจืช ืขื ืคืจืžื˜ืจื™ื ืฉื•ื ื™ื ื•ื‘ื“ื™ืงืช ื”ืชื•ืฆืื•ืช ืœืœื ื‘ื™ืฆื•ืข ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ื”ืžืงื•ืจ ืฉืœื”. ื›ืคื™ ืฉื‘ื˜ื— ื›ื‘ืจ ื”ื‘ื ืชื ืžื”ื›ื•ืชืจืช, ื”ืขื•ื–ืจ ื”ืจืืฉื™ ืฉืœื ื• ื‘ืขื ื™ื™ืŸ ื”ืคืฉื•ื˜ ื”ื–ื” ื™ื”ื™ื” JUnit . ืื ืขื“ื™ื™ืŸ ืœื ืฉืžืขืชื ืขืœ ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื•ืช ื•ืžื‘ื—ื ื™ ื™ื—ื™ื“ื•ืช , ืื ื™ ืžืฆื™ืข ืœื›ื ืœืขืฉื•ืช ื”ืคืกืงื” ืงื˜ื ื” ื•ืœื”ื›ื™ืจ ืืช ื”ืžื•ืฉื’ื™ื ื”ืœืœื•, ืœืžืจื‘ื” ื”ืžื–ืœ ื™ืฉ ืžืกืคื™ืง ืžื™ื“ืข ื‘ืื™ื ื˜ืจื ื˜. ืœื, ืืชื” ืœื ืจื•ืฆื”? ื•ื‘ื›ืŸ, ื‘ืกื“ืจ, ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ืœื ื™ื”ืคื•ืš ืœื‘ืขื™ื” ื’ื“ื•ืœื” ืœื”ื‘ื™ืŸ ืžื” ืงื•ืจื”. ื”ืจื™ ืืชื” ื™ื•ื“ืข ืžื” ื–ื” ืžื‘ื—ืŸ ื•ื‘ื“ื™ืงื” ื‘ื›ืœืœ? ืืชื” ืขื•ืฉื” ื–ืืช ื‘ื›ืœ ืคืขื ืฉืืชื” ืžืคืขื™ืœ ืืช ื”ืžืฉื™ืžื” ืฉืœืš, ืžื–ื™ืŸ ืืช ื”ื ืชื•ื ื™ื ื”ืจืืฉื•ื ื™ื™ื ื•ืžืฉื•ื•ื” ืืช ื”ืชื•ืฆืื” ื”ืžืชืงื‘ืœืช ืขื ืžื” ืฉืฆื™ืคื™ืช ืœืจืื•ืช.
ืฉืœื•ื, JUnit ืขื•ืœืžื™ !
ืžื” ื–ื” JUnit? ื‘ืืชืจ ื”ืจืฉืžื™ ืฉืœ ื”ืคืจื•ื™ืงื˜ ื ื•ื›ืœ ืœืงืจื•ื ืืช ื”ืชื™ืื•ืจ ื”ื‘ื:
JUnit ื”ื™ื ืžืกื’ืจืช ืคืฉื•ื˜ื” ืœื›ืชื™ื‘ืช ืžื‘ื—ื ื™ื ืฉื ื™ืชื ื™ื ืœื—ื–ืจื”. ื–ื”ื• ืžื•ืคืข ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช xUnit ืขื‘ื•ืจ ืžืกื’ืจื•ืช ืœื‘ื“ื™ืงืช ื™ื—ื™ื“ื•ืช.
ืขื‘ื•ืจื ื•, ืžืฉืžืขื•ืช ื”ื“ื‘ืจ ื”ื™ื ื”ื™ื›ื•ืœืช ืœื›ืชื•ื‘ ืžื—ืœืงื•ืช ืžืขื•ืฆื‘ื•ืช ื‘ืžื™ื•ื—ื“ ืฉื”ืฉื™ื˜ื•ืช ืฉืœื”ืŸ ื™ืคืขืœื• ื‘ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื”ืชื•ื›ื ื™ืช ืฉืœื ื•, ืœื”ืฉื•ื•ืช ืืช ื”ืชื•ืฆืื” ื”ืžืชืงื‘ืœืช ืขื ื”ื”ืคื ื™ื” ื•ืœื”ื•ื“ื™ืข โ€‹โ€‹ืœื ื• ืื ื”ืŸ ืื™ื ืŸ ืชื•ืืžื•ืช. ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืขื™ืงืจื•ืŸ, ืฉืงื•ืœ ื“ื•ื’ืžื” ืคืฉื•ื˜ื”. ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืžื—ืœืงืช ืขื–ืจ, ืฉืื—ืช ืžื”ืฉื™ื˜ื•ืช ืฉืœื” ืœื•ืงื—ืช ืฉื ื™ ืžืฉืชื ื™ื ืžืกื•ื’ int ื•ืžื—ื–ื™ืจื” ืืช ื”ืกื›ื•ื ืฉืœื”ื: JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.  - 1 ื–ื• ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉื ื ืกื” ืœื‘ื“ื•ืง. ืœืžืจื‘ื” ื”ืžื–ืœ, ืœ-IDEA ื”ืื”ื•ื‘ ืขืœื™ื ื• ื›ื‘ืจ ื™ืฉ ืืช ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ื›ื“ื™ ืœื™ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืžื‘ื—ื ื™ื, ื›ืœ ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื–ื” ืœืžืงื ืืช ื”ืกืžืŸ ื‘ืฉื•ืจืช ื”ืฆื”ืจืช ื”ื›ื™ืชื”, ื”ืงืฉ "Alt + Enter" ื•ื‘ื—ืจ "ืฆื•ืจ ืžื‘ื—ืŸ" ื‘ืชืคืจื™ื˜ ื”ื”ืงืฉืจ: ืœืื—ืจ ืฉืชืฆื™ื™ืŸ JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.  - 2 ื”ื™ื›ืŸ ื›ื“ืื™ ืœื™ืฆื•ืจ ืžื‘ื—ืŸ, IDEA ืžืฆื™ืขื” ืœื‘ื—ื•ืจ ืกืคืจื™ื™ืช ื‘ื“ื™ืงื” (ื‘ื—ื•ืžืจ ื–ื” ืื ื™ ืžืฉืชืžืฉ ื‘-JUnit4; ื›ื“ื™ ืฉืฉื™ืขื•ืจื™ ื”ืกืคืจื™ื™ื” ื™ืชื—ื‘ืจื• ืœืคืจื•ื™ืงื˜, ื™ืฉ ืœืœื—ื•ืฅ ืขืœ ื›ืคืชื•ืจ "ืชื™ืงื•ืŸ"), ืฉื™ื˜ื•ืช ืœื‘ื“ื™ืงื” ื•ืขื•ื“. ืืคืฉืจื•ื™ื•ืช. JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.  - 3 ื”-IDE ื™ืฆื•ืจ ืชื‘ื ื™ืช ืžื—ืœืงืช ื‘ื“ื™ืงื”: ClassName = TestClassName + "Test" MethodName = "test" + TestMethodName JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.  - 4 ืื ื—ื ื• ืจืง ืฆืจื™ื›ื™ื ืœืžืœื ืืช ื’ื•ืฃ ื”ืฉื™ื˜ื”. ืžื” ืฉืžื›ื•ื ื” "ื”ืฆื”ืจื•ืช" , ืฉื™ื˜ื•ืช ื”ืžืกื•ืคืงื•ืช ืขืœ ื™ื“ื™ JUnit , ื™ืขื–ืจื• ื‘ื›ืš . ื‘ืฆื•ืจื” ืคืฉื•ื˜ื”, ืขื‘ื•ื“ืชื ื ืจืื™ืช ื›ืš: ื”ืชื•ืฆืื” ื”ืฆืคื•ื™ื” ื•ื”ืชื•ืฆืื” ืฉืœ ื”ืงืจื™ืื” ืœืฉื™ื˜ื” ื”ื ื‘ื“ืงืช ืžื•ืขื‘ืจื•ืช ืœืฉื™ื˜ืช .assert*, ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ื”ื•ื“ืขืช ื”ืกื‘ืจ ื›ืคืจืžื˜ืจ ืจืืฉื•ืŸ. ืื ื”ืคืจืžื˜ืจื™ื ืื™ื ื ืชื•ืืžื™ื ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”, ืชืงื‘ืœื• ืžื™ื“ืข ืขืœ ื›ืš. ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืžื—ืœืงื” ื‘ื“ื™ืงื” ืœื‘ื™ืฆื•ืข ื‘ื“ื™ื•ืง ื›ืžื• ืžื—ืœืงื” ืจื’ื™ืœื”, ืื ื™ ืžืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืฉื™ืœื•ื‘ ื”ืžืงืฉื™ื Ctrl+Shift+F10 JUnit ืขื‘ื•ืจ JavaRush ืื• ืงืฆืช ืขืœ ื‘ื“ื™ืงื•ืช ื‘ื‘ื™ืช.  - 5
ื‘ื•ื ื ืคืจื˜ ืืช ื”ืžืฉื™ืžื”
ื‘ืชื™ืื•ืจื™ื”, ื”ื›ืœ ืคืฉื•ื˜ ื•ื™ืคื”, ืื‘ืœ ื‘ื”ืงืฉืจ ืฉืœ ื”ื“ื•ื’ืžื” ื”ืžื•ืฆืขืช, ื–ื” ืœื ืžืžืฉ ื”ื›ืจื—ื™; ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืกืžื•ืš ืขืœ ื”ืžื—ืฉื‘ ืฉื™ื•ืกื™ืฃ ืฉื ื™ ืžืกืคืจื™ื. ืื ื—ื ื• ืžืชืขื ื™ื™ื ื™ื ื™ื•ืชืจ ืื™ืš ื”ื“ื‘ืจื™ื ื™ืกืชื“ืจื• ืขื ื‘ืขื™ื•ืช ืืžื™ืชื™ื•ืช ืฉื™ืคืชืจื• ืขืœ ื™ื“ื™ ืชืœืžื™ื“ื™ JavaRush; ืœื“ื•ื’ืžื”, ืื ื™ ืžืฆื™ืข ืœืงื—ืช ืืช ื”ืจืžื” ื”ืื”ื•ื‘ื”05.lesson12.bonus03.
/* ื‘ืขื™ื” ื‘ืืœื’ื•ืจื™ืชืžื™ื ื›ืชื•ื‘ ืชื•ื›ื ื™ืช ืฉ: 1. ืžื›ื ื™ืกื” ืืช ื”ืžืกืคืจ N > 0 ืžื”ืžืกื•ืฃ 2. ื•ืื– ืžื›ื ื™ืกื” N ืžืกืคืจื™ื ืžื”ืžืกื•ืฃ 3. ืžืฆื™ื’ื” ืืช ื”ืžืงืกื™ืžื•ื ืฉืœ N ื”ืžืกืคืจื™ื ืฉื”ื•ื–ื ื•. */
ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื›ืชื•ื‘ ืฉืœื•ืฉื” ืžื‘ื—ื ื™ื, ืขื‘ื•ืจ ืžืกืคืจื™ื ื—ื™ื•ื‘ื™ื™ื, ืฉืœื™ืœื™ื™ื ื•ืงื‘ื•ืฆื” ืžืขื•ืจื‘ืช.
ื›ื›ืœ ืฉื ื›ื ืก ืœืชื•ืš ื”ื™ืขืจ...
ื›ืืŸ ืžื—ื›ื•ืช ืœื ื• ื›ืžื” ื”ืคืชืขื•ืช: public class UtilApp { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //ะฝะฐะฟะธัˆะธั‚ะต ะทะดะตััŒ ะฒะฐัˆ code int n; int maximum; /* ะšะพะฝะตั‡ะฝะพ ะถะต ั ะฝะต ะฑัƒะดัƒ ั€ะฐะทะผะตั‰ะฐั‚ัŒ ั€ะตัˆะตะฝะธะต ะทะฐะดะฐั‡ะธ ;) ะšะพะด ะฟั€ะธะฒะตะดะตะฝะฝั‹ะน ั‚ัƒั‚ ะฟะตั€ะตั€ะฐะฑะพั‚ะฐะฝ ะดะปั ะฝะฐะณะปัะดะฝะพัั‚ะธ, ะธ ะฝะต ะฒ ะบะพะตะผ ัะปัƒั‡ะฐะต ะฝะต ะพะทะฝะฐั‡ะฐะตั‚ ั‡ั‚ะพ ะพะฝ ะดะพะปะถะตะฝ ะฟั€ะธััƒั‚ัั‚ะฒะพะฒะฐั‚ัŒ ะฒ "ะฟั€ะฐะฒะธะปัŒะฝะพะผ ั€ะตัˆะตะฝะธะธ" */ System.out.println(maximum); } }
  • ื”ืœื•ื’ื™ืงื” ืฉืœ ื”ืชื•ื›ื ื™ืช ืžืžื•ืงืžืช ื‘ืฉื™ื˜ืช main()
  • ื ืชื•ื ื™ ื”ืžืงื•ืจ ืื™ื ื ืžื•ืขื‘ืจื™ื ืœืฉื™ื˜ื”, ืืœื ืžื•ื–ื ื™ื ืžื”ืžืงืœื“ืช.
  • ื”ืฉื™ื˜ื” main() ืœื ืžื—ื–ื™ืจื” ืืช ื”ืชื•ืฆืื”, ืืœื ืžื•ืฆื™ืื” ืื•ืชื” ืœืงื•ื ืกื•ืœื”.
ืื ื”ื ืงื•ื“ื” ื”ืจืืฉื•ื ื” ืœื ื‘ืขื™ื™ืชื™ืช ื‘ืžื™ื•ื—ื“ (ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืงืจื•ื ืœืฉื™ื˜ืช main() ื›ืจื’ื™ืœ), ืื– ื”ืฉืชื™ื™ื ื”ื‘ืื•ืช ืžืืœืฆื•ืช ืื•ืชื ื• ืœื”ื™ื›ื ืก ืœืขื•ืžืง ื”ื ื•ืฉื ื•ืœืืžืฅ ืืช ื”ืžื•ื— ืฉืœื ื•. ืžืฆืืชื™ ืžืกืคืจ ืคืชืจื•ื ื•ืช ืœื‘ืขื™ื”:
  1. ื”ืขื‘ืจืช ื”ื”ื™ื’ื™ื•ืŸ ืœืžืฆื™ืืช ื”ืžืงืกื™ืžื•ื ืœืฉื™ื˜ื” ื ืคืจื“ืช.
    • ื™ืชืจื•ื ื•ืช: ื’ื™ืฉื” ื ื›ื•ื ื” ื‘ืžื•ื ื—ื™ื ืฉืœ refactoring
    • ื—ืกืจื•ื ื•ืช: ื”ืชื•ื›ื ื” ืžื’ื•ื“ืœืช ื‘ืงื•ื“, ืžื‘ื ื™ื ืžื™ื•ืชืจื™ื, ืœืคื—ื•ืช ืžืชื•ื•ืกืฃ ืžืขืจืš ืื• ArrayList (ืชืœื•ื™ ื‘ื˜ืขื ื•ื‘ืฆื‘ืข...). ืจืง ื”ืžื ื’ื ื•ืŸ ืœืžืฆื™ืืช ื”ืžืงืกื™ืžื•ื ื ื‘ื“ืง; ืงืœื˜ ื•ืคืœื˜ ื ืชื•ื ื™ื ืื™ื ื ื ื‘ื“ืงื™ื.
  2. ื›ืชื™ื‘ืช ืขื˜ื™ืคื•ืช ืขื‘ื•ืจ System.in/System.out.
    • ื™ืชืจื•ื ื•ืช: ืื ื—ื ื• ืœื ืžืฉืชืžืฉื™ื ื‘ืกืคืจื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™.
    • ื—ืกืจื•ื ื•ืช: ื”ืฉื‘ื™ืœ ืื™ื ื• ืžื™ื•ืขื“ ืœืžืชื—ื™ืœื™ื. ื”ืžื•ืจื›ื‘ื•ืช ื”ื™ื—ืกื™ืช ืฉืœ ื™ื™ืฉื•ื ื”ื‘ื“ื™ืงื”; ื›ืžื•ืช ื”ืงื•ื“ ื‘ื‘ื“ื™ืงื” ืขืฉื•ื™ื” ืœื”ื™ื•ืช ื’ื“ื•ืœื” ื™ื•ืชืจ ืžืืฉืจ ื‘ืžืฉื™ืžื” ื”ื ื‘ื“ืงืช.
  3. ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื•ืช ื ื•ืกืคื•ืช ืœืžื‘ื—ื ื™ื.
    • ื™ืชืจื•ื ื•ืช: ืงื•ื“ ื ืงื™ ื‘ืžื‘ื—ื ื™ื, ืงืœื•ืช ื™ื—ืกื™ืช ื‘ื›ืชื™ื‘ืช ืžื‘ื—ืŸ. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืžื—ืœืงื” ื”ื ื‘ื“ืงืช ืœื ืžืฉืชื ื”.
    • ื—ืกืจื•ื ื•ืช: ืฆืจื™ืš ืœื—ื‘ืจ ืกืคืจื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ืœืคืจื•ื™ืงื˜.
ืœืžืขืŸ ื”ืืžืช, ื”ื›ื™ ืื”ื‘ืชื™ ืืช ื”ืืคืฉืจื•ืช ื”ืฉืœื™ืฉื™ืช, ืื– ื‘ื•ืื• ื ื ืกื” ืœื™ื™ืฉื ืื•ืชื”.
ื›ืœืœื™ ืžืขืจื›ืช
ื—ื™ืคื•ืฉ ืงืฆืจ ื”ื•ื‘ื™ืœ ืื•ืชื™ ืœืขืžื•ื“ http://stefanbirkner.github.io/system-rules/ , ื•ืžื™ื“ ื”ืชื‘ืจืจ ืฉื–ื” ืžื” ืฉืื ื™ ืฆืจื™ืš.
ืื•ืกืฃ ื›ืœืœื™ JUnit ืœื‘ื“ื™ืงืช ืงื•ื“ ื”ืžืฉืชืžืฉ ื‘-java.lang.System.
ืื– ื‘ื•ืื• ื ื•ืจื™ื“ ืืช ื”ืกืคืจื™ื™ื” . ื”ื•ืจื“ ืืช ืกืคืจื™ื™ืช Commons IO ื”ื ื“ืจืฉืช ื›ื“ื™ ืฉื—ื•ืงื™ ื”ืžืขืจื›ืช ื™ืคืขืœื• . ืื ื• ืžื—ื‘ืจื™ื ืืช ืฉืชื™ ื”ืกืคืจื™ื•ืช ืœืคืจื•ื™ืงื˜ ืฉืœื ื• (ืงื•ื‘ืฅ -> ืžื‘ื ื” ืคืจื•ื™ืงื˜ -> ืกืคืจื™ื•ืช -> + -> ื’'ืื•ื•ื”) ื•ืžืชื—ื™ืœื™ื ืœืคืกืœ: ืœืื—ืจ ื”ื”ืฉืงื”, ื”ืžืฉื™ืžื” ืฉืœื ื• ืžื‘ืงืฉืช ืžื›ื ืœื”ื–ื™ืŸ ืžืกืคืจื™ื N+1 ืžื”ืžืกื•ืฃ, ื›ืืฉืจ ื”ืžืกืคืจ ื”ืจืืฉื•ืŸ ืื•ืžืจ ืœื›ื ื›ืžื” ืžืกืคืจื™ื ื™ืœื›ื• ืื—ืจื™ื•. ื‘-System Rules, ื”ืžื—ืœืงื” TextFromStandardInputStream ืžืฉืžืฉืช ืœืžื˜ืจื•ืช ืืœื•. ื‘ืชื—ื™ืœื”, ืขืœื™ื ื• ืœื”ื•ืกื™ืฃ ืฉื“ื” ืžืกื•ื’ ื–ื” ืœืžื—ืœืงืช ื”ื‘ื“ื™ืงื” ืฉืœื ื• ื•ืœืกืžืŸ ืื•ืชื• ื‘ื‘ื™ืื•ืจ @Rule: @Rule public final TextFromStandardInputStream systemInMock = emptyStandardInputStream(); ืœืื—ืจ ืžื›ืŸ, ื™ืฉื™ืจื•ืช ื‘ืฉื™ื˜ืช ื”ื‘ื“ื™ืงื” ืื ื• ืžืฆื™ื™ื ื™ื ืืช ื”ื ืชื•ื ื™ื ื”ื“ืจื•ืฉื™ื: systemInMock.provideText("4\n2\n6\n1\n3\n"); ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ืžืกืคืจื™ื ืžื•ืขื‘ืจื™ื ื‘ืฆื•ืจืช ื˜ืงืกื˜ ื•ืžื•ืคืจื“ื™ื ืขืœ ื™ื“ื™ ืžืงืฃ ืžื—ืจื•ื–ื•ืช "\n". ืขืœ ืกืžืš ื–ื”, ืžืกืชื‘ืจ ืฉ-N ื™ื”ื™ื” ืฉื•ื•ื” ืœ-4, ื•ื ื—ืคืฉ ืืช ื”ืžืงืกื™ืžื•ื ืžื”ืžืกืคืจื™ื {2, 6, 1, 3}. ืœืื—ืจ ืžื›ืŸ, ืขืœื™ื ื• ืœื™ืฆื•ืจ ืžื•ืคืข ืฉืœ ื”ืžื—ืœืงื” ื”ื ื‘ื“ืงืช ื•ืœืงืจื•ื ืœืžืชื•ื“ื” main() . ื”ืชื•ื›ื ื™ืช ืฉืœื ื• ืงื•ืจืืช ืืช ื”ื ืชื•ื ื™ื ืž-systemInMock, ืžืขื‘ื“ืช ืื•ืชื ื•ืžื“ืคื™ืกื” ืืช ื”ืชื•ืฆืื”, ื•ื›ืœ ืžื” ืฉืขืœื™ื ื• ืœืขืฉื•ืช ื”ื•ื ืœืงืจื•ื ืื•ืชื ื•ืœื”ืฉื•ื•ืช ืื•ืชื ืœืชืงืŸ. ืœืฉื ื›ืš, ื›ืœืœื™ ื”ืžืขืจื›ืช ืžืกืคืงื™ื ืœื ื• ืืช ื”ืžื—ืœืงื” StandardOutputStreamLog. ืื ื• ืžื•ืกื™ืคื™ื ืฉื“ื” ืžื”ืกื•ื’ ืฉืฆื•ื™ืŸ: @Rule public final StandardOutputStreamLog log = new StandardOutputStreamLog(); ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ื ืชื•ื ื™ื ื”ืžื•ื“ืคืกื™ื ื‘ืฉื™ื˜ืช .getLog(), ื‘ืขื•ื“ ืฉืืชื” ืฆืจื™ืš ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื ื•ื›ื—ื•ืชื ืฉืœ ืชื•ื•ื™ ืฉื•ืจื” ื—ื“ืฉื”, ื”ืืคืฉืจื•ื™ื•ืช ื”ืกื•ืคื™ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื›ืš: assertEquals("{2, 6, 1, 3}, max = 6", "6", log.getLog().trim()); // or assertEquals("{2, 6, 1, 3}, max = 6", "6\r\n", log.getLog()); ื‘ื™ืŸ ื‘ื“ื™ืงื•ืช, ืขืœ ืžื ืช ื”ื™ืžื ืข ืžืฉื›ื‘ื•ืช ื ืชื•ื ื™ื, ืขืœื™ืš ืœื ืงื•ืช ื™ื•ืžืŸ log.clear(); ื”ื˜ืงืกื˜ ื”ืžืœื ืฉืœ ื›ื™ืชืช ื”ืžื‘ื—ืŸ ืฉืœื™: import org.junit.Rule; import org.junit.Test; import org.junit.contrib.java.lang.system.StandardOutputStreamLog; import org.junit.contrib.java.lang.system.TextFromStandardInputStream; import static org.junit.Assert.*; import static org.junit.contrib.java.lang.system.TextFromStandardInputStream.emptyStandardInputStream; public class UtilAppTest { @Rule public final TextFromStandardInputStream systemInMock = emptyStandardInputStream(); @Rule public final StandardOutputStreamLog log = new StandardOutputStreamLog(); @Test public void testAddition() throws Exception { systemInMock.provideText("4\n2\n6\n1\n3\n"); UtilApp utilApp = new UtilApp(); utilApp.main(new String[]{}); assertEquals("{2, 6, 1, 3}, max = 6", "6", log.getLog().trim()); systemInMock.provideText("5\n-100\n-6\n-15\n-183\n-1\n"); log.clear(); utilApp.main(new String[]{}); assertEquals("{-100, -6, -15, -183, -1}, max = -1", "-1", log.getLog().trim()); systemInMock.provideText("3\n2\n0\n-1\n"); log.clear(); utilApp.main(new String[]{}); assertEquals("{2, 0, -1}, max = 2", "2", log.getLog().trim()); } } ืื ื—ื ื• ืžืฉื™ืงื™ื ื•ื ื”ื ื™ื. -=!!! ื—ืฉื•ื‘!!!=- ื—ื•ืžืจ ื–ื” ืžืกื•ืคืง ืœืžื˜ืจื•ืช ืžื™ื“ืข ื‘ืœื‘ื“; ืื ื™ ืœื ืžื‘ื˜ื™ื— ื‘ื“ื™ืงื” ืžื•ืฆืœื—ืช ืฉืœ ื”ืžืฉื™ืžื” ื‘ืฉืจืช ืื ื™ืฉ ืžื—ืœืงื” ื—ื™ืฆื•ื ื™ืช ื‘ื—ื‘ื™ืœื” ืขื ื”ืžืฉื™ืžื”. ืœืคื ื™ ืฉืœื™ื—ืช ืžืฉื™ืžื” ืœืื™ืžื•ืช ืœืฉืจืช, ื”ืกืจ ื›ืœ ื“ื‘ืจ ื–ืจ: ืงื‘ืฆื™ื ืžื™ื•ืชืจื™ื, ืžื—ืœืงื•ืช ืžื™ื•ืชืจื•ืช, ืงื•ื“ ืฉื”ื’ื™ื‘. ืกื™ื•ื ืžื•ืฆืœื— ืฉืœ ื”ื‘ื“ื™ืงื•ืช ืฉื™ืฆืจืช ืื™ื ื• ืžื‘ื˜ื™ื— ืกื™ื•ื ืžื•ืฆืœื— ืฉืœ ื”ื‘ื“ื™ืงื•ืช ื‘ืฉืจืช. ื‘ื›ื•ื•ื ื” ืœื ืœืขืกืชื™ ืืช ื”ื—ื•ืžืจ ื”ืชื™ืื•ืจื˜ื™: ืชื•ืจืช ื‘ื“ื™ืงืช ื™ื—ื™ื“ื•ืช, ื”ืขืจื•ืช JUnit, ื˜ืขื ื” ื•ื›ื•', ื›ืœ ื”ื—ื•ืžืจ ื ืžืฆื ื‘ืงื™ืฉื•ืจื™ื ื”ืžื•ืคื™ืขื™ื ื‘ื˜ืงืกื˜. ืื•ืœื™ ื™ืฉ ืœืš ื“ืจื›ื™ื ืžืฉืœืš ืœื‘ื—ื•ืŸ ืžืฉื™ืžื•ืช, ืืฉืžื— ืœื“ื•ืŸ ื‘ื”ืŸ ืื™ืชืš ื‘ื”ืขืจื•ืช.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION