如何通过内置JUnit测试自动连接服务

艾哈迈德·巴塔西

如何仅通过使用弹簧注释在测试类中自动装配服务

当我尝试以下错误时,在UserServiceImp类中使用@Service批注

2014-12-20 15:35:52错误TestContextManager:334-在允许TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5af97850]准备测试实例[com.amsb.bariz.base.test]时捕获了异常。 UserTest @ 4520ebad] org.springframework.beans.factory.BeanCreationException:创建名称为'com.amsb.bariz.base.test.UserTest'的bean时出错:自动连接依赖项的注入失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动连线字段:public com.amsb.bariz.base.service.UserService com.amsb.bariz.base.test.UserTest.userService; 嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有发现类型为[com.amsb.bariz.base.service.UserService]的合格Bean:期望至少有1个bean符合此依赖项的自动装配条件。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

我的服务等级是

package com.amsb.bariz.base.service.imp;

import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.amsb.bariz.base.dao.UserDao;
import com.amsb.bariz.base.dao.UserRoleDao;
import com.amsb.bariz.base.entity.User;
import com.amsb.bariz.base.entity.UserRole;
import com.amsb.bariz.base.service.UserService;


@Service("userService")
public class UserServiceImp implements UserService {

    @Autowired
    private UserDao userDao;

    @Autowired
    private UserRoleDao userRoleDao;

    public void register(User user) {

        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

        user.setPassword(passwordEncoder.encode(user.getPassword()));
        Calendar calendar = Calendar.getInstance();
        java.util.Date now = calendar.getTime();

        Date dateNow = new Date(20070266);
        Timestamp dn = new Timestamp(now.getTime());
        user.setStatus("P");
        user.setCreated_on(dn);
        user.setEnabled(false);

        UserRole ur = new UserRole(user,"USER_ROLE");


        System.out.println("XDXDX ::" + user.toString());
        userDao.create(user);
        userRoleDao.create(ur);

    }

}

我的测试课程是:

package com.amsb.bariz.base.test;

import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;

import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.support.DirtiesContextTestExecutionListener;
import org.springframework.test.context.transaction.TransactionalTestExecutionListener;

import com.amsb.bariz.base.dao.UserDao;
import com.amsb.bariz.base.entity.User;
import com.amsb.bariz.base.entity.UserRole;
import com.amsb.bariz.base.service.UserService;
import com.github.springtestdbunit.DbUnitTestExecutionListener;

import junit.framework.TestCase;
import junit.framework.TestSuite;


@Configuration
@ComponentScan(basePackages={"com.amsb.bariz.base.service"})
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/spring-main.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
        DirtiesContextTestExecutionListener.class,
        TransactionalTestExecutionListener.class,
        DbUnitTestExecutionListener.class})
public class UserTest {


    @Autowired
    public UserService userService;



    @Test
    public void userAdd() {
        User user = new User();

        Calendar calendar = Calendar.getInstance();
        java.util.Date now = calendar.getTime();
        Timestamp doo = new Timestamp(now.getTime());



        Date a = new Date(0);


        user.setPassword("oman");
        user.setName("oman new ");
        user.setStatus("N");
        user.setCreated_on(doo);
        user.setUpdated_on(doo);
        user.setDob(new Date(20140522));
        user.setUsername("[email protected]");


        userService.register(user);
    }



}
优生学

您是否正在尝试将测试本身用作Spring配置的一部分?那是行不通的。您需要做的是:-从测试本身中删除@Configuration@ComponentScan注释-创建一个简单的TestConfiguration类:

@Configuration
@ComponentScan(basePackages={"com.amsb.bariz.base.service"})
@ImportResource("classpath:spring/spring-main.xml")
public class TestConfiguration{ }

并在测试中引用它:

@ContextConfiguration(classes = { TestConfiguration.class }, loader = AnnotationConfigContextLoader.class)
public class UserTest {

而且您应该能够很好地注入服务。

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自动连接字段进行Junit测试

来自分类Dev

使用JUnit自动测试Web服务

来自分类Dev

将Spring服务自动装配到JUnit测试中

来自分类Dev

如何在测试中也自动连接ErrorAttributes?

来自分类Dev

如何使用Apache HttpClient 4.3.4通过代理测试与服务器SSL端口的连接?

来自分类Dev

如何测试与mysql服务器的连接?

来自分类Dev

通过代理服务器自动进行SSH连接

来自分类Dev

如何仅在JUnit弹簧测试中自动接线特定的类?

来自分类Dev

如何根据条件自动跳过某些JUnit测试?

来自分类Dev

JUnit如何测试Spring自动装配构造函数?

来自分类Dev

如何运行Jetty服务器进行Java Junit测试

来自分类Dev

如何通过Gradle测试任务在JUnit上启用调试

来自分类Dev

如何使用扫描仪通过JUnit测试方法?

来自分类Dev

如何通过Junit测试该默认构造函数?

来自分类Dev

测试与外部服务的连接

来自分类Dev

测试与外部服务的连接

来自分类Dev

另一个@tx:annotation驱动导致自动连接无法进行Junit测试

来自分类Dev

使用junit5时,Springboot测试无法自动连接TestRestTemplate

来自分类Dev

通过PHP自动连接

来自分类Dev

JUnit负载测试与服务器的数千个并发套接字连接

来自分类Dev

如何自动连接服务作为构造函数参数?

来自分类Dev

通过内置下载服务下载文件

来自分类Dev

如何从通过USB适配器连接的旧3.5英寸内置硬盘启动?

来自分类Dev

如何测试Nexus Repository Management服务器的https连接

来自分类Dev

如何测试VoIP服务的网络连接质量

来自分类Dev

如何测试我的 SQL 服务器连接?

来自分类Dev

设备通过USB连接时如何删除iPhoto自动打开?

来自分类Dev

如何编写 JUnit 测试?

来自分类Dev

无法通过休眠的uniqueConstraintException通过junit测试

Related 相关文章

  1. 1

    使用自动连接字段进行Junit测试

  2. 2

    使用JUnit自动测试Web服务

  3. 3

    将Spring服务自动装配到JUnit测试中

  4. 4

    如何在测试中也自动连接ErrorAttributes?

  5. 5

    如何使用Apache HttpClient 4.3.4通过代理测试与服务器SSL端口的连接?

  6. 6

    如何测试与mysql服务器的连接?

  7. 7

    通过代理服务器自动进行SSH连接

  8. 8

    如何仅在JUnit弹簧测试中自动接线特定的类?

  9. 9

    如何根据条件自动跳过某些JUnit测试?

  10. 10

    JUnit如何测试Spring自动装配构造函数?

  11. 11

    如何运行Jetty服务器进行Java Junit测试

  12. 12

    如何通过Gradle测试任务在JUnit上启用调试

  13. 13

    如何使用扫描仪通过JUnit测试方法?

  14. 14

    如何通过Junit测试该默认构造函数?

  15. 15

    测试与外部服务的连接

  16. 16

    测试与外部服务的连接

  17. 17

    另一个@tx:annotation驱动导致自动连接无法进行Junit测试

  18. 18

    使用junit5时,Springboot测试无法自动连接TestRestTemplate

  19. 19

    通过PHP自动连接

  20. 20

    JUnit负载测试与服务器的数千个并发套接字连接

  21. 21

    如何自动连接服务作为构造函数参数?

  22. 22

    通过内置下载服务下载文件

  23. 23

    如何从通过USB适配器连接的旧3.5英寸内置硬盘启动?

  24. 24

    如何测试Nexus Repository Management服务器的https连接

  25. 25

    如何测试VoIP服务的网络连接质量

  26. 26

    如何测试我的 SQL 服务器连接?

  27. 27

    设备通过USB连接时如何删除iPhoto自动打开?

  28. 28

    如何编写 JUnit 测试?

  29. 29

    无法通过休眠的uniqueConstraintException通过junit测试

热门标签

归档