问题描述
@PostMapping("/uploadfiles")
public String uploadMultiplePdfs(@Valid FormModel formModel,BindingResult bindingResult,@RequestParam("pdfs")
multipartfile[] pdfs) throws IOException {
if (bindingResult.hasErrors()) {
return "main";
}
//(here is some code for saving pdfs into database and other logic)
return "redirect:/pdflist";
}
我想测试一下。我有:
@SpringBoottest
@AutoConfiguremockmvc
public class MvcLayerTest {
//here lots of autowired beans
@Test
public void uploadResponse() throws Exception {
Mockmultipartfile mockmultipartfile = new Mockmultipartfile ("file","Hello",MediaType.APPLICATION_PDF_VALUE,"hello world".getBytes(StandardCharsets.UTF_8));
this.mockmvc.perform(multipart("/uploadfiles").file(mockmultipartfile)).andDo(print()).andExpect(status().is3xxRedirection());
}
不幸的是,这个测试没有通过。我究竟做错了什么 ?感谢您的任何帮助。我收到错误信息:
*原因:
org.springframework.beans.factory.NoSuchBeanDeFinitionException: No qualifying bean of type 'pdfmerger.entity.UploadedFileModel' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListablebeanfactory.raiseNoMatchingBeanFound(DefaultListablebeanfactory.java:1790)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.doResolveDependency(DefaultListablebeanfactory.java:1346)
at org.springframework.beans.factory.support.DefaultListablebeanfactory.resolveDependency(DefaultListablebeanfactory.java:1300)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657)
... 72 more*
然而,UploadedFileModel 被自动连接到这个测试类中。 UploadedFileModel 只是一个简单的实体:
@Entity @Table(name = "UPLOADED_PDF")
//lombok annotations
@Data
public class UploadedFileModel {
@Id
@Column(name = "PDF_ID")
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid",strategy = "uuid2")
private String id;
@Column(name = "PDF_NAME")
private String pdfName;
@Column(name = "FILE_TYPE")
private String fileType;
@Column(name = "PDF_SIZE")
private long size;
@Lob
@Column(name = "PDF_DATA")
private byte[] pdfData;
public UploadedFileModel() {
}
public UploadedFileModel(String pdfName,String fileType,Long size,byte[] pdfData) {
this.pdfName = pdfName;
this.fileType = fileType;
this.pdfData = pdfData;
this.size = size;
} }
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)