当前位置: 首页 > 知识库问答 >
问题:

多部分MockMvcSpring测试后

郑承恩
2023-03-14

我正在尝试测试我的上传我是usig Junit,Mockmvc和Spring

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:app-context.xml")
@WebAppConfiguration

public class UploadTest {

@Autowired
private WebApplicationContext wac;

private MockMvc mockMvc;

Application app;
String session;

@Before
public void setup() throws Exception {
    Users.init();
    Graphs.init();
    Sessions.init();
    this.mockMvc = MockMvcBuilders.standaloneSetup(new Controller()).build();
    Users.setConfig("dani.pass", "81dc9bdb52d04dc20036dbd8313ed055");
    MvcResult m = mockMvc.perform(get("/logIn?name=dani&encrypted=81dc9bdb52d04dc20036dbd8313ed055"))
            .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
            .andExpect(jsonPath("$.status", is(1)))
            .andExpect(jsonPath("$.error", is("")))
            .andReturn();
    String content = m.getResponse().getContentAsString();
    JSONObject jsonObject = new JSONObject(content);
    session=jsonObject.get("data").toString();
}

@Test
public void uploadTest1() throws Exception {
            String filePath = (new File(".")).getCanonicalFile().getCanonicalFile().getCanonicalPath()
            + "/books.ttl";

            FileInputStream fis = new FileInputStream(filePath);
            MockMultipartFile multipartFile = new MockMultipartFile("file", fis);

            HashMap<String, String> contentTypeParams = new HashMap<String, String>();
            contentTypeParams.put("name", "http://exampleTest.com/ng"+Long.toString(System.currentTimeMillis()));
            contentTypeParams.put("session", session);
            MediaType mediaType = new MediaType("multipart", "form-data", contentTypeParams);
            mockMvc.perform(MockMvcRequestBuilders.fileUpload("/upload")
                    .file(multipartFile)
                    .param("name", "http://exampleTest.com/ng"+Long.toString(System.currentTimeMillis()))
                    .param("session", session))
                    .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
                    .andExpect(jsonPath("$.status", is(1)))
                    .andReturn();
}
}

你能帮帮我吗?

错误堆栈跟踪:

[org.springframework.test.context.support.dependencyinjectiontestexecutionlistener@361cb7a1]准备测试实例[endpoint.security.tests.uploadtest@6F7918F0]org.springframework.beans.factory.beanCreationException:创建名为“endpoint.security.tests.uploadtest”的bean时出错:注入自动连线的依赖项失败;嵌套异常为org.springframework.beans.factory.beancreationexception:无法自动连接字段:private com.sun.jersey.server.impl.application.webapplicationcontext endpoint.security.tests.uploadtest.wac;嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:未找到依赖项得[com.sun.jersey.server.impl.application.WebapplicationContext]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:[.cp/:na]处得{@org.springframework.beans.factory.annotation.AutoWired(required=true)},原因为:org.springframework.beans.factory.BeanCreationException:无法自动连接字段:private com.sun.jersey.server.impl.application.webapplicationcontext endpoint.security.tests.uploadtest.wac;嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:未找到依赖项得[com.sun.jersey.server.impl.application.WebapplicationContext]类型得合格bean:需要至少一个符合此依赖项自动候选条件得bean.依赖项注释:

共有1个答案

漆雕唯
2023-03-14

在错误stacktrace中,WebApplicationContext似乎是从错误的包com.sun.jersey.server.impl.application导入的。

应该是org.springframework.web.context

 类似资料:
  • 本教程上接教程第4部分。 我们已经建立一个网页投票应用,现在我们将为它创建一些自动化测试。 自动化测试简介 什么是自动化测试? 测试是检查你的代码是否正常运行的简单程序。 测试可以划分为不同的级别。 一些测试可能专注于小细节(某一个模型的方法是否会返回预期的值?), 其他的测试可能会检查软件的整体运行是否正常(用户在对网站进行了一系列的操作后,是否返回了正确的结果?)。这些其实和你早前在教程 1中

  • 我正在使用Tika来自动检测被推入DMS的文档的内容类型。几乎所有的工作都很好,除了电子邮件。 我引用了核心库和tika解析器来检测pdf和msword文档。我是不是还漏掉了什么?

  • 我正在编写使用webendpoint在junit上运行测试的web服务,因此我必须将所有测试保存在源代码中。问题是,我想要从IDEA和命令行直接运行测试,而最后一个我已经塞住了。 如何通过“Gradle Test”在sources文件夹(src/main/java)中运行测试?我和gradle不是一家人,但我试着用 但是它打破了使用IDEA的项目导入,My2016.1.1有时不能创建两个具有相同内

  • 我定义了下一个单元测试来测试用于上传文件的控制器: 为什么我在考试中得了400分?我是不是错过了测试中的某些配置?

  • 22.13.6.测试分组 JUnit和TestNG允许为测试方法精密分组. 对于分组JUnit的测试类与测试方法,JUnit4.8引入了类别的概念.9该测试任务允许您设定JUnit包括或者排除某些类的规范。 例22.12.JUnit分类 build.gradle test { useJUnit { includeCategories 'org.gradle.junit.Ca

  • 我无法编写将文件上载到控制器的测试。 在这一问题发生的所有事件中,我没有看到任何事情对我有效。 我可以从我的webapp上传和存储文件,但是当我运行测试时,控制器中的文件总是空的 应用程序 控制器 测验