我有一个程序,显示与名称和用户需要输入他们的字段。我怎么测试这个?
public class User {
@NotEmpty
private String firstName;
@NotEmpty
private String lastName;
public String getAllInfo() {
return this.firstName + '\n' + this.lastName;
}
//getters and setters
}
public class Store {
...
@PostMapping("/cart/index")
public String getInfo(@Valid final User user, final Model model) {
Store.LOGGER.info("{}", user.getAllInfo());
return "cart/index";
}
@GetMapping(value = "cart/index")
public String index(final Model model) {
model.addAttribute("user", new User());
return "cart/index";
}
...
}
null
null
MockHttpServletRequest:
HTTP Method = POST
Request URI = /cart/index
Parameters = {}
Headers = {Accept=[application/json]}
Handler:
Type = app.vlad.store.Store
Method = public java.lang.String app.vlad.store.Store.getInfo(app.vlad.user.User,org.springframework.ui.Model)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = cart/index
View = null
Attribute = user
value = app.vlad.user.User@248deced
errors = []
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = {}
Content type = null
Body =
Forwarded URL = cart/index
Redirected URL = null
Cookies = []
AssertionError:JSON路径“$.FirstName”处没有值,异常:JSON不能为null或空
我的测试:
storetest.java
public class StoreTest {
@Autowired
MockMvc mockMvc;
@Mock
private User user;
@Mock
private Model model;
@Mock
Store store;
@Autowired
List<Products> products;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
final Store store = new Store(this.products);
this.mockMvc = MockMvcBuilders.standaloneSetup(store).build();
}
@Test
public void testGetInfo() throws Exception {
this.user.setFirstName("Ivan");
this.user.setLastName("Ivanov");
this.mockMvc
.perform(MockMvcRequestBuilders.post("/cart/index")
.accept(MediaType.APPLICATION_JSON))
.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.firstName").value("Ivan"))
.andExpect(MockMvcResultMatchers.jsonPath("$.lastName").value("Ivanov"));
}
}
最好的方法是使用SpringBootTest。这将启动一个Spring Boot应用程序,然后您可以使用类似RestAssured的东西来调用API。
这个网站详细介绍了所有的设置:http://www.masterspringboot.com/getting-startned/testing-spring-boot/testing-spring-boot-with-resst-consured
我尊敬的java开发者朋友们。我正在尝试测试并覆盖克隆方法的捕获块。我已经浪费了一个星期,但没有找到任何解决方法来弥补这个障碍。请帮帮我。 我的源代码- 我的Junit测试用例- 我已经为图片提供了链接,这将使我对这个问题和我所做的尝试有更多的了解。 源代码- 我尝试过的junit-
我必须为一个调用API然后处理响应的类编写测试。类有两个公共函数和一个私有函数。第一个公共方法获取ID列表。在循环中为每个ID调用第二个公共方法,以获取与ID关联的详细信息。私有方法是在第二个公共方法内部调用的,因为获取基于id的详细信息的调用是异步进行的。 我是JUnits的新手,虽然我知道我不应该测试API调用,只是测试我的函数,但我仍然不明白单元测试应该断言什么。
在我的项目(spring boot应用程序)中,我有大约200个测试用例。最近,我们为缓存管理器(ehcache)实现了一个工厂bean,它位于我的启动类(@SpringBootApplication)中。 我的问题是,一旦带有工厂bean的启动类被一个测试用例执行,所有后续的测试用例都会失败,并出现错误。。。 “同一个VM中已存在另一个同名“appCacheManager”的CacheManag
请注意,我没有访问实际的代码在一个地方,我可以张贴它。 此外,我也限于(由于不幸的原因)使用Spring 3.0.5或3.1.2。
问题内容: 我可以为以下代码编写的最 详尽的 测试是什么? 此方法在类内。该方法调用JpaRepository,然后在实体上调用其方法。 如果无法测试是否要删除实体,是否可以在该方法上运行 其他 任何功能? 问题答案: 有两种测试策略。一种是单元测试,即确保您的服务正常运行。另一个是集成/端到端测试,即确保所有功能都能很好地协同工作。 您对自己拥有的东西进行单元测试,对所有内容进行集成测试。这是一
我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5