Spring Roo 测试

小高 2014-08-12

一、stub unit test

“test stub”命令创建JUnit测试

1、假定已经创建service层代码

package org.rooina.coursemanager.service;
 
import java.math.BigDecimal;
 
import org.springframework.beans.factory.annotation.Autowired;
 
public class DefaultTaxCalcService implements TaxCalcService {

private BigDecimal taxRate;

@Autowired

public DefaultTaxCalcService(BigDecimal taxRate) {

this.taxRate = taxRate;

}
 

@Override

public BigDecimal calculateTax(BigDecimal price) {

return price.multiply(taxRate);

}
 
}

 2、创建测试脚本

roo> test stub --class ~.service.DefaultTaxService

 3、产生测试代码

package org.rooina.coursemanager.service;
 
import org.junit.Test;
 
public class DefaultTaxCalcServiceTest {

private DefaultTaxCalcService defaultTaxCalcService = ➥
new DefaultTaxCalcService();
@Test

public void calculateTax() {

org.junit.Assert.assertTrue(true);

}
 
}

 4、更新测试代码 

package org.rooina.coursemanager.service;
 
import java.math.BigDecimal;
 
import junit.framework.Assert;
 
import org.junit.Test;
 
public class DefaultTaxCalcServiceTest {

private DefaultTaxCalcService defaultTaxCalcService =

new DefaultTaxCalcService(new BigDecimal("0.02"));

@Test

public void calculateTax() {

BigDecimal price = new BigDecimal("50");

BigDecimal taxAmount = defaultTaxCalcService.calculateTax(price);

Assert.assertEquals("Tax rate invalid",

new BigDecimal("1.00"), taxAmount);

}
 
}

二、任意测试

    测试任意类时

    1、脚本代码

roo> class --class ~.web.BillingServiceSystemTest ➥

--path SRC_TEST_JAVA

    2、测试代码

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/META-INF/spring/applicationContext*.xml")
public class TaskServiceSystemTest {
	
	@Autowired
	private TaskService service;

	long studentId;

	@Test
	@Transactional
	public void testTask() {
		TaskDataOnDemand taskDod = new TaskDataOnDemand();
		
		Task task = taskDod.getRandomTask();
		Long taskId = task.getId();
		
		
		Task task1 = service.findTask(taskId);
		
		Assert.assertNotNull(task1);
	}
	
	
}

相关推荐