单元测试是如何在Spring中完成的

单元测试是如何在Spring中完成的,spring,unit-testing,testing,junit,Spring,Unit Testing,Testing,Junit,简单的问题寻找简单的答案 如果我有一个给定的类和一个方法,我想测试执行该操作的过程是什么?包含关于模拟对象和模拟注入功能的所有内容。他们做得很好 通常,您会做这种事情(从文档中为示例添加一些内容): 您可以@RunWith(SpringJUnit4ClassRunner.class)和JUnit一起测试与dao和服务层相关的所有功能 首先,下载spirnt-test.jar或配置pom.xml RunWith(SpringJUnit4ClassRunner.class) @ContextConf

简单的问题寻找简单的答案 如果我有一个给定的类和一个方法,我想测试执行该操作的过程是什么?

包含关于模拟对象和模拟注入功能的所有内容。他们做得很好

通常,您会做这种事情(从文档中为示例添加一些内容):


您可以
@RunWith(SpringJUnit4ClassRunner.class)
和JUnit一起测试与dao和服务层相关的所有功能

首先,下载spirnt-test.jar或配置pom.xml

RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/applicationContext.xml")


public class CategoryServiceTest extends AbstractTransactionalJUnit4SpringContextTests {

    @Resource
    private CategoryService categoryService;


    @Ignore@Rollback(false)
    public void testSave() {
        Category category = new Category();
        category.setCategoryName("chicken");
        category.setCreatedTime(new java.util.Date());
        categoryService.save(category);

    }

}
最好从AbstractTransactionalJUnit4SpringContextTests扩展,因为它使用spring事务,可以通过在测试用例之前添加@rollback(false)来关闭回滚

RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/spring/applicationContext.xml")


public class CategoryServiceTest extends AbstractTransactionalJUnit4SpringContextTests {

    @Resource
    private CategoryService categoryService;


    @Ignore@Rollback(false)
    public void testSave() {
        Category category = new Category();
        category.setCategoryName("chicken");
        category.setCreatedTime(new java.util.Date());
        categoryService.save(category);

    }

}