JMock 2例
JMockの意味は,サービスにある方法であれば,10ステップの論理処理があり,daoのデータに依存する.あなたが書いた論理が正しいかどうか分かりません.この場合、daoに依存することなくJMockでテストできます.
mockは仮想の意味で、実際には、JMockはどんなクラスの孤立テストをすることができて、彼はすべての依存クラスを仮想することができます!
依存jarパッケージ:hamcrest-core-1.1.jar, hamcrest-core-library.jar, jmock-2.5.1.jar, jmock-junit4-2.5.1.JArおよびJUnit
mockは仮想の意味で、実際には、JMockはどんなクラスの孤立テストをすることができて、彼はすべての依存クラスを仮想することができます!
依存jarパッケージ:hamcrest-core-1.1.jar, hamcrest-core-library.jar, jmock-2.5.1.jar, jmock-junit4-2.5.1.JArおよびJUnit
package com.supben.service;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.junit.Assert;
import com.supben.pojo.User;
public class JmockTest extends TestCase {
Mockery context = new Mockery();
UserService userService = null;
@Override
public void setUp() throws Exception {
userService = context.mock(UserService.class);
}
public void testSayHello() {
context.checking(new Expectations() {
{
List<User> list = new ArrayList<User>();
for (int i = 0; i < 5; i++) {
User user = new User();
user.setUserId(new Long(i));
user.setUserName("supben" + i);
list.add(user);
}
// ( )
oneOf(userService).find3Table();
//
will(returnValue(list));
}
});
List<User> list = userService.find3Table();
assertSame(5, list.size());
}
}