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つの返り値しか持たせない場合がありますが、機械猫モッカーは呼び出し順なども考慮して 返り値を決定してます。
また、すでに対象となるクラスが存在する場合、
既存のコードはすべてコメントアウトして、モックコードを書き込みます。