我试图使用mockmvcbuilders.standalonesetup方法为一个spring mvc rest控制器创建一个非常基本的单元测试。我一直收到一个404错误。下面列出了测试应用程序上下文、测试类、控制器和整个堆栈跟踪。欢迎任何指导。
@Configuration
public class TestContext
{
@Bean
public Service service()
{
return mock(Service.class);
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={TestContext.class})
@WebAppConfiguration
public class TestUsingWebAppContextSetUp
{
private MockMvc mockMvc;
@Autowired
private Service service;
@Before
public void setUp()
{
mockMvc = MockMvcBuilders.standaloneSetup(MyController.class)
.build();
}
@Test
public void test() throws Exception
{
mockMvc.perform(get("/search?phoneNumber=5551112222"))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE));
}
}
public class MyController
{
@Autowired
private Service service;
@RequestMapping("/search")
public List<SearchResult> search(@RequestParam(value="phoneNumber") String phoneNumber)
{
System.out.println("search called");
Search search = new Search();
search.setPhoneNumber(phoneNumber);
return service.search(search);
}
}
java.lang.AssertionError:状态应为:<200>但实际为:<404>在org.springframework.test.util.AssertionErrors.fail(AssertionErrors.AsserteQuals(AssertionErrors.java:60)在org.springframework.test.web.servlet.result.StatusResultMatchers$10)在org.springframework.test.web.servlet.mockMVC$1。在A:47)位于org.junit.internal.runners.statements.invokeMethod.evaluate(invokeMethod.Java:17)位于org.junit.internal.runners.statements.runbeFores.evaluate(runbeFores.Java:26)位于org.springframework.test.context.junit4.statements.runbeForestMethodCallbacks.evaluate(runbeFores.Java:73)位于.Java:288)在org.junit.runners.ParentRunner.Access$000(ParentRunner.Java:58)在org.junit.runners.ParentRunner$2。评估(ParentRunner.Java:268)在org.springframework.test.context.junit4.statements.runbeforestclasscallbacks。评估(Runbeforestclasscallbacks.Java:61)在org.springframework.test.context.junit4.statements.runaftertestclasscallbacks。评估(eStrunner.java:382),位于org.eclipse.jdt.internal.junit.runner.RemoteStrunner.main(RemoteStrunner.java:192)
mockmvcbuilders.standalonesetup
的javadoc状态
通过注册一个或多个@controller
的实例并以编程方式配置spring MVC基础架构,构建一个mockmvc
。这允许完全控制控制器的实例化和初始化及其依赖关系,类似于普通单元测试,同时也允许一次测试一个控制器。
所以您可以将其用作
mockMvc = MockMvcBuilders.standaloneSetup(new MyController()).build();
注册实际实例。如果您需要它是一个spring托管实例(您可能考虑到它有一个@autowired
字段),那么您必须从ApplicationContext
获取它。
英文原文:http://emberjs.com/guides/testing/testing-controllers/ 单元测试方案和计算属性与之前单元测试基础中说明的相同,因为Ember.Controller集成自Ember.Object。 针对控制器的单元测试使用ember-qunit框架的moduleFor来做使这一切变得非常简单。 测试控制器操作 下面给出一个PostsController
/////////////////////个人控制器///////////////////////////////// ///////////////////个人/////////////////////////////////// ///////////////////PersondaoImpl/////////////////////////// /////////////人(模型)/////
spring-test模块对测试控制器@Controller提供了最原生的支持。详见14.6 "Spring MVC测试框架"一节。
主要内容:用于控制流图的符号控制流测试是一种白盒测试下的测试技术。该技术的目的是通过控制结构确定语句或程序指令的执行顺序。程序的控制结构用于开发程序的测试用例。在该技术中,测试者选择大程序的特定部分来设置测试路径。它主要用于单元测试。测试用例由程序的控制图表示。 控制流图由节点,边缘,决策节点,结节点形成,以指定所有可能的执行路径。 用于控制流图的符号 节点 边缘 决策节点 连接节点 节点 控制流程图中的节点用于创建过程路径
本文向大家介绍AngularJS 单元测试控制器,包括了AngularJS 单元测试控制器的使用技巧和注意事项,需要的朋友参考一下 示例 控制器代码: 考试: 跑!
尝试用junit5和mockito测试我的web层(spring boot、spring mvc)。http方法的所有其他测试(get、put等)工作正常,但更新。遵循代码。 控制器: 服务: 最后,测试: 结果: CustomerService中的update(...)方法返回为null。无法理解方式。请建议。