UnitTestλ₯Ό μν μΌμ’
μ 보쑰κ°μ²΄.
What ? ¶
μ€μ μ κ°μ²΄μν μ νλ΄λ΄λ μΌμ νλ κ°μ²΄μ΄λ€. λ³΄ν΅ MockObjectλΌλ ν΄λμ€λ₯Ό μμλ°μμ (ꡬνμ κ° μΈμ΄λ³λ‘ 'μμμ'μ΄λ€. ^^; μ²μ Mock μ κ°λ
μ΄ λμ¨ μ»¬λΌμ Java μμ€μλ€.) λ§λ€μ΄μ€λ€. ν
μ€νΈλ₯Ό μν΄μλ μ²μμ ν΄λΉ κ°μ²΄μ μ΄κΈ°μ€μ μ ν΄ λλ€. κ·Έλ¦¬κ³ Testλ₯Ό λλ¦¬κ² λλ€.
λ§λ‘ νλ©΄ μ’ μ΄λ ΅κ³ . --; μλ₯Ό λ€μ΄μ μ€λͺ
νλκ² μ’ λ μ΄ν΄νκΈ° μ½κ² λ€.
μ¬μ© μ1) μ¬λ¬ μ¬λμ΄ νλ‘κ·Έλλ° ν λ, λ
립λ νλ‘κ·Έλ¨μ΄ μλ λͺ¨λλ³λ‘ νλ‘κ·Έλ¨μ λ§λ€κ³ μλ κ²½μ°. μ΄λ΄λ ν΄λΉ λͺ¨λμ μμ±νκ³ ν
μ€νΈ μ½λλ₯Ό λ§λ€λ €κ³ ν΄λ, λ€λ₯Έ λͺ¨λμ μμ‘΄μ± λλ¬Έμ μ§νμ΄ μ΄λ ΅κ² λλ€. μμ§ μμ±λμ§ μμ μμ‘΄μ±μ κ°μ§ λͺ¨λμ MockObjectλ‘ λ§λ¬μΌλ‘μ ν΄λΉ λͺ¨λμ λ§λλ λμμ μμ‘΄μ±λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€.
μΈν°νμ΄μ€κ° νμ€νκ² μ ν΄μ§μ§ μμ λͺ¨λμ λν΄μλ μ΄λ»κ² ν κ²μΈκ°?
μ¬μ© μ2) Datatbase μ κ΄λ ¨λ νλ‘κ·Έλλ°μ λν΄μ UnitTestλ₯Ό ν λ, DB Connection μ λν MockObjectλ₯Ό λ§λ€μ΄μ DB Connectionμ μ΄μ©νλ κ°μ²΄μ DB Connection κ°μ²΄ λμ λ£μ΄μ€μΌλ‘μ ν΄λΉ μμ
μ νκ²λ ν μ μλ€. κ·Έλ¦¬κ³ ν΄λΉ ν¨μ λΆλΆμ΄ μ λλ‘ νΈμΆλκ³ μλμ§λ₯Ό μκΈ° μν΄ MockObjectμμ Test μ½λλ₯Ό λ£μ΄ μ€ μλ μλ€.-> MockObjects μμ²΄κ° μΈν°νμ΄μ€μ μλ₯Ό μν λκ΅¬λ‘ μ΄μ©ν μ μλ€. (TestFirstProgramming μμλ Test Codeκ° μΌμ’
μ μΈν°νμ΄μ€λ₯Ό μ μνκΈ° μν λ°©λ²μΌλ‘ μ΄μ©λλ€.)
λ¬Έμ μ ¶
MockObject λ μ΄λκΉμ§λ κ°μ§κ°μ²΄μ΄λ€. μ€μ ν
μ€νΈλ₯Ό ν λμλ MockObjectλ₯Ό μ΄μ©ν κ²½μ°μ μ€μ μ κ°μ²΄λ₯Ό μ΄μ©νμλμ κ²½μ° λ λ€ κ³ λ €ν΄μΌ νλ€.
κ·Έλ¦¬κ³ μμ κ°μ κ²½μ° UnitTest μ½λμ μ€λ³΅μ κ°μ Έμ¬ μλ μλ€. μ΄λ μμκ³Ό μ€λ²λΌμ΄λ©μ μ΄μ©, ν΄κ²°νλ€.
μ΄λ»κ² ꡬννκ³ μ¬μ©ν κΉ ? ¶
λ³Έλ MockObjects κ΄λ ¨ κΈμ Java μμ€μ΄μ§λ§ κ° μΈμ΄μ λ°λΌ λλ¦λλ‘ κ΅¬νν λ°©λ²μ΄ μκ² λ€.
- mockobject.py - Python MockObjects framework
Class Name | μν |
MockObject | Mock Objectλ€μ μμν΄λμ€. Mock Objectλ€μ MockObject λ€μ μμλ°μμ ꡬννλ€. |
Expectation | μμ λ§νλ 'κΈ°λκ°' μ μν΄ λ―Έλ¦¬ Mock Objectμ μμ λ κ°λ€μ μ±μλ£κΈ° μν ν΄λμ€λ€. MockObjectλ μμ μ ꡬνμ μν μλ£κ΅¬μ‘°μ²΄λ‘μ Expectation ν΄λμ€λ€μ μ΄μ©ν μ μλ€. |
ExpectationCounter | ν΄λΉ ν¨μμ κΈ°λνλ νΈμΆνμλ₯Ό μΉ΄μ΄νΈ νκΈ° μν λμ ν΄λμ€ |
ExpectationList | List λμ ν΄λμ€ |
ExpectationSet | μ§ν© λμ ν΄λμ€. λ΄λΆμ μΌλ‘λ Dictionaryλ₯Ό μ΄μ©, flag check |
ExpectationMap | Key : Value. Map λμ ν΄λμ€ |
- μ΄μ©λ°©λ² - MockObjects λ₯Ό μ°Έμ‘°.
μ°Έμ‘° Link ¶
- http://www.mockobjects.com/endotesting.html.
-> DeadLink
- http://www.mockobjects.com/papers/jdbc_testfirst.html - MockObjectsλ₯Ό μ΄μ©ν JDBC μ΄ν리μΌμ΄μ
TestFirstProgramming
-> DeadLink
- http://no-smok.net/seminar/upload/PythonMock.htm
-> DeadLink
- Using Mock Objects (extracted from pragmatic unit testing)