Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试DAO和服务/弹簧_Java_Spring_Unit Testing - Fatal编程技术网

Java 测试DAO和服务/弹簧

Java 测试DAO和服务/弹簧,java,spring,unit-testing,Java,Spring,Unit Testing,这个问题已经在Stackoverflow被问过了,但我还没有找到答案。我不知道如何测试我的DAO和服务层,您将能够找到我想在下面测试的方法。因此,关于DAO的测试有两个相反的概念:一个是根本不测试它,另一个是只使用内存中的DB测试它。至于服务层,这意味着只有当方法具有业务逻辑时才应该对其进行测试。所以,坦率地说,我甚至无法想象该做什么,因为我不确定哪种方法是正确的。在我的上一个pet项目中,我使用jUnit only examle for saveEntity测试了DAO:我显式地创建实体,填充

这个问题已经在Stackoverflow被问过了,但我还没有找到答案。我不知道如何测试我的DAO和服务层,您将能够找到我想在下面测试的方法。因此,关于DAO的测试有两个相反的概念:一个是根本不测试它,另一个是只使用内存中的DB测试它。至于服务层,这意味着只有当方法具有业务逻辑时才应该对其进行测试。所以,坦率地说,我甚至无法想象该做什么,因为我不确定哪种方法是正确的。在我的上一个pet项目中,我使用jUnit only examle for saveEntity测试了DAO:我显式地创建实体,填充它,使用DAO方法保存它,当检索它时,断言结果,并显式地从数据库中删除对象。我确信这不是测试它的正确方法。因此,请看下面的代码,并给我一个如何正确测试这些层的方法的建议:

服务

我想用Mockito做这件事,但我发现所有的例子都和我的情况不一样。
感谢您提供的任何方法。

我们使用curl或其他命令运行集成测试,以验证DAO层代码。我不喜欢使用整个特殊数据库设置进行DAO单元测试,Robert,在商业开发中测试DAO合适吗?如果是,通常使用的是工作数据库还是内存中的数据库?您可以。尽管如此,我不确定我们的投资回报率有多高。您不断更新这些测试。此外,我们进行端到端测试,这抓住了大多数东西。不过我想这要视情况而定。我们在这里制作全栈webapps,所以我们不只是关注dao层,我们更关心用户的特性。如果你所在的地方离这一层比较近,而这正是你关注的重点,那么这可能非常重要-
@Override
public void saveEntity(Artist entity) throws ConstraintViolationException {
    sessionFactory.getCurrentSession().save(entity);
}
@Transactional
@Override
public void saveEntity(Artist entity) throws ConstraintViolationException {
    artistDAO.saveEntity(entity);
}