我试图编写一个REST控制器的单元测试,它通过资源汇编类生成HATEOAS链接。生产过程中一切正常,但使用单元测试资源时,汇编程序类不会被注入到控制器中。
我的资源汇编程序类是:
@Component
public class ModelResourceAssembler extends ResourceAssemblerSupport<Model, ModelResource> {
public ModelResourceAssembler() {
super(ModelRestController.class, ModelResource.class);
}
@Bean
public ModelResourceAssembler modelResourceAssembler(){
return new ModelResourceAssembler();
}
@Override
public ModelResource toResource(Model model) {
...
}
}
控制器是:
@Controller
@RequestMapping("/demo")
@ComponentScan(basePackages = {"com.foo.demo"} )
public class ModelRestController {
@Autowired
private ModelPersistenceHandler modelPersistenceHandler;
@Autowired
private ModelResourceAssembler modelResourceAssembler;
...
}
和单元测试:
@RunWith(MockitoJUnitRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes= {ModelResourceAssembler.class, ModelRestController.class})
public class ModelRestControllerTest {
private MockMvc mockMvc;
@InjectMocks
private ModelRestController modelRestController;
@Mock
private ModelPersistenceHandler modelPersistenceHandler;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(modelRestController).build();
}
...
}
无论我做什么,ModelResourceAssembler实例始终为空。由于应用程序是spring boot的,它没有WebCoonfig类,并且autowired的WebApplicationContext始终为空,所以我不能(而且真的不想这样做,因为我正在运行单元测试)通过webAppContextSetup实例化MockMvc
在示例中,您使用了@injectmocks
,但没有为ModelResourceAssembler
声明模拟。你不会突然得到一个实例。
您可以使用mockitojunitrunner.class
。它不知道spring豆。对于测试spring应用程序,您更希望使用SpringJUnit4ClassRunner.class
。
本文向大家介绍Android编程单元测试实例详解(附源码),包括了Android编程单元测试实例详解(附源码)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程单元测试。分享给大家供大家参考,具体如下: 完整实例代码代码点击此处本站下载。 本文是在上一篇文章《java编程之单元测试(Junit)实例分析》的基础上继续讲解android的单元测试,android源码中引入了j
本文向大家介绍java编程之单元测试(Junit)实例分析(附实例源码),包括了java编程之单元测试(Junit)实例分析(附实例源码)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java编程之单元测试。分享给大家供大家参考,具体如下: 完整实例代码代码点击此处本站下载。 在有些时候,我们需要对我们自己编写的代码进行单元测试(好处是,减少后期维护的精力和费用),这是一些最基本的模块测
由于我的两个JPA实体(任务和作业)的双向关系中的嵌套循环,我出现了Jackson错误。我开始研究并使用@JsonManagedResources和@JsonBackResources注释部分解决了这个问题,但此方法仅在我在实体中使用注释时才有效,最终JSON序列化跳过我的JobResource/JobResourceAssembler和TaskResource/TaskResourceAssem
本文向大家介绍Android编程之单元测试实例分析,包括了Android编程之单元测试实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程之单元测试用法。分享给大家供大家参考,具体如下: 在实际开发中,开发android软件的过程需要不断地进行测试。使用Junint测试框架,是正规Android开发的必用技术,在Junint中可以得到组件,可以模拟发送事件和检测程序处
我在构造函数 rabbitmq配置。Springxml位于src/main/resources中,在src/main/java中加载xml的类和在src/test/java中加载xml的测试类。我尝试在src/test/resources中复制XML文件,但没有效果。 有没有办法解决这个问题?
问题内容: 您好,我正在用Jasmine编写我的第一个角度测试,但是我一直收到错误消息 ------测试开始:文件:C:\ Users \ Regan \ Documents \ Visual Studio 2013 \ WebSites \ Regan \ testApp \ TestProject \ ng-tests \ MainCtrlSpec.js ------使用内联测试’MainCt