KikainekoMocker
テストのサンプル
サンプル
機械猫モッカーはJUnitのテストケースをパスする擬似クラスを生成しますが
たとえば、以下のようなテストをパスします。
上のCalcTestを見ると、プリミティブ型やオブジェクト型を操作できることが分かります。
このように機械猫モッカーは任意の型を操作することが可能です (ただし、全ての型を安全に操作できるわけではありません。詳細は仕様のドキュメントをご覧ください)。
また、以下のようなテストもパスします。
TokenTestを見ると、同一メソッドを複数回実行していますが、機械猫モッカーはこれも問題なく扱えます。
簡易な擬似クラスでは、1メソッドに1つの返り値しか持たせない場合がありますが、機械猫モッカーは呼び出し順なども考慮して 返り値を決定してます。
また、すでに対象となるクラスが存在する場合、
既存のコードはすべてコメントアウトして、モックコードを書き込みます。
package sample; import junit.framework.TestCase; public class CalcTest extends TestCase { Calc calc; protected void setUp() throws Exception { super.setUp(); calc=new Calc(); } public void testGet(){ assertEquals(0,calc.get(0,0)); } public void testAdd(){ calc.set("+"); assertEquals(5,calc.get(2,3)); } public void testAddInteger(){ calc.set("+"); Integer i20=new Integer(20); Integer i30=new Integer(30); Integer i50=new Integer(50); assertEquals(i50,calc.get(i20,i30)); } public void testMulti(){ calc.set("*"); assertEquals(6,calc.get(2,3)); } public void testDiv(){ calc.set("/"); assertEquals(2,calc.get(4,2)); } } |
上のCalcTestを見ると、プリミティブ型やオブジェクト型を操作できることが分かります。
このように機械猫モッカーは任意の型を操作することが可能です (ただし、全ての型を安全に操作できるわけではありません。詳細は仕様のドキュメントをご覧ください)。
また、以下のようなテストもパスします。
package sample; import junit.framework.TestCase; public class TokenTest extends TestCase { Token token; protected void setUp() throws Exception { super.setUp(); } public void testNext(){ token=new Token("a=10*c;"); assertEquals("a",token.next()); assertEquals("=",token.next()); assertEquals("10",token.next()); assertEquals("*",token.next()); assertEquals("c",token.next()); assertEquals(";",token.next()); } public void testLength(){ token=new Token("a=10*c;"); assertEquals("6",token.length()); } } |
TokenTestを見ると、同一メソッドを複数回実行していますが、機械猫モッカーはこれも問題なく扱えます。
簡易な擬似クラスでは、1メソッドに1つの返り値しか持たせない場合がありますが、機械猫モッカーは呼び出し順なども考慮して 返り値を決定してます。
また、すでに対象となるクラスが存在する場合、
既存のコードはすべてコメントアウトして、モックコードを書き込みます。