繁体   English   中英

JUNIt中的测试应用程序

Testing Application in JUNIt

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在JUNIT中测试我的应用程序时出现错误

java.lang.IllegalStateException: Failed to load ApplicationContext

当我为Configuration创建类而不是为applicationContext文件创建类时,它弄乱了该错误。

下面是类和DAO文件。

WebAppContext.java
package com.atoc.test.entity;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

import java.util.Properties;

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {
        "com.atoc.test.DAO",
        "com.atoc.test.entity"
})
public class WebAppContext extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("/static/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Bean
    public SimpleMappingExceptionResolver exceptionResolver() {
        SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver();

        Properties exceptionMappings = new Properties();

       // exceptionMappings.put(arg0, arg1)
       // exceptionMappings.put("net.petrikainulainen.spring.testmvc.todo.exception.TodoNotFoundException", "error/404");
        exceptionMappings.put("java.lang.Exception", "error/error");
        exceptionMappings.put("java.lang.RuntimeException", "error/error");

        exceptionResolver.setExceptionMappings(exceptionMappings);

        Properties statusCodes = new Properties();

        statusCodes.put("error/404", "404");
        statusCodes.put("error/error", "500");

        exceptionResolver.setStatusCodes(statusCodes);

        return exceptionResolver;
    }

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/jsp/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }
}
TestContext.java:
package com.atoc.test.entity;

import org.mockito.Mockito;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;

import com.atoc.test.DAO.UserTestDAO;
import com.bpa.qaproduct.repository.UserDAO;

@Configuration
public class TestContext {

    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();

        messageSource.setBasename("i18n/messages");
        messageSource.setUseCodeAsDefaultMessage(true);

        return messageSource;
    }

    @Bean
    public UserDAO userDAO() {
        //UserTestDAO userTestDao = new UserTestDAO();
        return Mockito.mock(UserDAO.class);
    }
}
UserTestDAO.java:
package com.atoc.test.DAO;


import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//import org.springframework.test.context.TestContextManager;
//import  org.junit.runners.BlockJUnit4ClassRunner;

import com.atoc.test.entity.TestContext;
import com.atoc.test.entity.WebAppContext;
import com.bpa.qaproduct.entity.User;
import com.bpa.qaproduct.repository.UserDAO;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestContext.class, WebAppContext.class})
public class UserTestDAO {

    @Autowired
   private UserDAO userDAO;

    private User testUser;


    @Test
    public void testGetUserFilterCount() {

        assertNotNull(userDAO);
        assertNotNull(testUser);

    int value =  userDAO.getUserFilterCount(testUser);
        assertNotNull(value);

    }
    @Test
    public void testGetUserList1() {


        assertNotNull(userDAO);
        assertNotNull(testUser);

        @SuppressWarnings("unchecked")
        List<User> list=userDAO.getUserList(testUser);
        assertNotNull(list);

    }

    @Test(expected = NullPointerException.class)
    public void testGetUserList() {


        List<User> listToString = userDAO.getUserList(testUser);
        assertTrue(listToString.containsAll(listToString));

    }
    @Test(expected = NullPointerException.class)
    public void testGetAllUserList() {
        List<User> listToString = userDAO.getAllUserList(testUser);
        assertTrue(listToString.containsAll(listToString));
    }

    @Test(expected = NullPointerException.class)
    public void testGetUserById() {

        User expectedUser = new User();
        expectedUser.setUserId(1);
        expectedUser.setFirstName("Kiran");
        expectedUser.setUserEmail("kirankumar@bpatech.com");

        int userId = 1;
        User actualUser = userDAO.getUserById(userId);

        //("bpa", expectedUser.getUserEmail(),actualUser.getUserEmail());*/

    assertNotNull(actualUser);
    }

    @Test
    public void testValidateUser() {


        assertNotNull(userDAO);
        String userEmail = null;
        assertNotNull(userEmail);
        String userPassword = null;
        assertNotNull(userPassword);
        User value=userDAO.validateUser(userEmail, userPassword);
        assertNotNull(value);
        assertTrue(userDAO.validateUser(userEmail, userPassword)==null);

    }
    @Test
    public void testUpdatePassword() {

        assertNotNull(userDAO);
        String userEmail = null;
        assertNotNull(userEmail);
        String userPassword =  null;
        assertNotNull(userPassword);
        User value=userDAO.updatePassword(userEmail, userPassword);
        assertNotNull(value);
        assertTrue(userDAO.updatePassword(userEmail, userPassword) == null);
    }
    @Test(expected = NullPointerException.class)
    public void testForgotUserPassword() {

        User expectedUser = new User();
        expectedUser.setUserId(1);
        expectedUser.setFirstName("Kiran");

        String userName="bpa";
        User actualResult=userDAO.forgotPassword(userName);
        assertEquals(actualResult.getFirstName(),expectedUser.getFirstName());
    }
    @Test
    public void testSaveUser() {



        assertTrue(true);
    }
    @Test
    public void testRemoveUser() {

        assertTrue(true);

    }

}

作为即时消息使用类来配置而不是XML文件。是否有任何方法可以克服此错误,没有找到类型为[org.hibernate.SessionFactory]的合格Bean作为依赖项。

无法加载ApplicationContext是此错误的基本原因之一。这是配置文件中的完整代码详细信息

WebAppContext和TestContext是配置文件的

UesrTestDAO是我的JUNIT工作的DAO方法

问题暂未有回复.您可以查看右边的相关问题.
2 JUnit测试中Spring Boot应用程序的多个实例

是否可以进行Junit测试来启动应用程序的两个实例(在单独的线程上),以便可以测试弹性? 我遇到了一个使用以下方法启动应用程序的想法( 在测试中实例化多个Spring Boot应用程序 ):new SpringApplicationBuilder(Application.class).bu ...

3 在Gradle for Android应用程序中运行JUnit测试

我想在我的Android应用程序项目中运行简单,简单的JUnit测试,同时使用Gradle编写Activity测试。 花了很长时间配置Gradle并使其工作,但是,无论如何,现在我仍然试图让JUnit测试只是编译。 我检查了这个链接 ,但是当我运行gradle时出现以下错误: 所 ...

8 使用 JUnit(或尝试)测试 Java Server-Client 应用程序

我用 Java 完成了一个服务器-客户端应用程序,我需要为不同的情况编写多个测试。 例如,我有一个客户端,它发送一条消息并接收一条消息。 另一种情况是我有一个客户端,它发送多条消息,对于每个请求,它都会收到一条消息。 另一个我有 2 个客户端,每个客户端都发送多条消息,并且对于每条消息,他们都会收到 ...

9 JUnit测试控制台输入应用程序

我正在尝试使用JUnit测试一个Java应用程序,该应用程序从控制台获取输入以在程序中做出选择。 这是我要在下面测试的程序的摘要。 PS:我是JUnit测试的新手,因此希望获得清晰,简单的答案。 我将如何创建一个测试用例,例如输入。 '1',但是输入是从控制台提供的吗? ...

10 每次测试后如何启动应用程序 Junit5 TestFX

我正在使用 Junit5 和 TestFX 编写应用程序测试。 我的意图是主测试类在每次测试后重新启动应用程序。 据我所知,我将使用 @BeforeEach 注释,但它对我不起作用。 这是我的测试课: 问题是:如何在每次测试后重新启动应用程序? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM