0
測試方法remove
正在嘗試刪除某些用戶,其ID爲147
但該ID不存在。如果我啓用Rollback(false)
,我得到一個異常(預期的行爲),但沒有它,測試通過沒有問題。所以我有兩個問題:使用回滾時不會拋出異常的交易測試方法
- 爲什麼只有在禁用回滾時測試失敗?
- 是否可以通過 獲取異常啓用回滾?
UserDao
是從具有@Transactional
(默認選項)的通用DAO類和@Repository
繼承(與bean的名字)在類級別的註解。
Here是禁用回滾時出現的異常。
我使用Spring框架4.3.9,休眠5.2.10和JUnit 4.12
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@Transactional
@ContextConfiguration({
"classpath:myapp-config-test.xml",
"classpath:hib-test.xml"})
public class UserControllerTest {
private MockMvc mockMvc;
private MvcResult mvcResult;
private final String basePath = "https://stackoverflow.com/users/";
@Autowired
private UserDao userDao;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(new UserController(userDao)).build();
}
@Test
//@Rollback(false)
public void remove() throws Exception {
mockMvc.perform(delete(basePath + "147")).andExpect(status().isOk());
}
}
我很擔心這個簡單的事實:爲什麼當(理論上)測試失敗時測試通過?謝謝你的解釋 – Chu