尽管我的测试应该是完整的并且是绿色的。这是一个非常小的问题,我需要帮助。
@ContextConfiguration(locations = { "classpath:integrator-rest.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class ProjectBuilderControllerTest {
@Mock
private ProjectBuilderController projectBuilderControllerMock;
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
MockitoAnnotations.initMocks(this);
}
@Test
public void loadDependencyListMockTest() throws Exception {
ArrayList<String> result = new ArrayList<String>();
result.add("spring-core-3.0.1");
result.add("spring-webmvc-4.2.1");
result.add("spring-test-4.0.1");
result.add("junit-4.1");
mockMvc.perform(get("/projectbuilder/dependencyList")).andExpect(status().isOk());
mockMvc.perform(get("/projectbuilder/dependencyList").accept(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$", Matchers.hasSize(5)))
.andExpect(jsonPath("$", Matchers.equalTo((result))));
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
mockMvc = null;
}
}
我只是想添加/删除以便测试通过。这是指向xml文件的链接,我从该文件加载依赖项列表并返回列表。
基本上,loadDependencyList()方法从XML文件加载依赖项列表并返回依赖项列表,我只是测试返回的列表是否一致。
现在考试通过了!问题是退货顺序不正确
答案是Mockito不在乎列表中的字符串元素是否在引号中,它无论如何都会对其进行比较,然后测试通过。你比较的顺序会有所不同。因此,如果你认为你的问题是引用/不引用,你就有了另一个问题。
我在等
<["junit","jax-rs","spring-mvc","spring-context"]>
如果它返回
<[junit,jax-rs,spring-mvc,spring-context]>
考试应该通过。记住,顺序很重要。