我正在使用 spring data jpa 来创建微服务。我正在尝试为控制器编写测试用例。现在在控制器 url 中,我正在从文件中访问InstituteIdentifier
变量值。application.property
在 AccountController 类中,我在 url 中获取 InstituteIdentifier 变量值
但我无法InstituteIdentifier
在测试类 url 中访问该变量值。我尝试$ InstituteIdentifier
在测试用例 url 中使用,但值没有注入,我收到 404 测试用例失败错误。
如果我硬编码 InstituteIdentifier 值,而不是访问 url 中的变量,然后测试用例运行没有任何错误。但我不想硬编码。
application.property
我在src/main
目录中的文件。谁能告诉我如何在测试类中访问该 application.property 文件变量?或者我还需要为测试创建单独的属性文件。
帐户控制器
@RestController
@CrossOrigin(origins = "${crossOrigin}")
@RequestMapping("/spacestudy/${InstituteIdentifier}/admin/account")
public class AccountController {
@Autowired
AccountService accService;
@GetMapping("/loadAcctLocationList")
public ResponseEntity<List<Account>> findLocation() throws Exception{
return ResponseEntity.ok(accService.findLocation());
}
测试账户控制器
@RunWith(SpringRunner.class)
@WebMvcTest(value=AccountController.class)
public class TestAccountController {
@Autowired
private MockMvc mockMvc;
@MockBean
private AccountService accountService;
@Test
public void findLocationTest() throws Exception {
Account account = new Account();
account.setsLocation("Test1");
List<Account> accountObj = new ArrayList<Account>();
accountObj.add(account);
Mockito.when(accountService.findLocation()).thenReturn(accountObj);
mockMvc.perform(get("/spacestudy/$ InstituteIdentifier/admin/account/loadAcctLocationList"))
.andExpect(status().isOk())
.andExpect(jsonPath("$[0].sLocation", is("Test1")))
.andExpect(jsonPath("$.*",Matchers.hasSize(1)));
for(Account result: accountObj) {
assertEquals("Test1", result.sLocation);
}
}