JMock 2例

1505 ワード

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

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());
	}
}