java junit4_JUnit4使用Java5中的单元测试
1、JUnit4使用Java5中的注解(annotation)
@Before:初始化方法?? 對于每一個測試方法都要執行一次(注意與BeforeClass區別,后者是對于所有方法執行一次)
@After:釋放資源? 對于每一個測試方法都要執行一次(注意與AfterClass區別,后者是對于所有方法執行一次)
@Test:測試方法,在這里可以測試期望異常和超時時間
@Test(expected=ArithmeticException.class)檢查被測方法是否拋出ArithmeticException異常
@Ignore:忽略的測試方法
@BeforeClass:針對所有測試,只執行一次,且必須為static void
@AfterClass:針對所有測試,只執行一次,且必須為static void
一個JUnit4的單元測試用例執行順序為:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一個測試方法的調用順序為:
@Before -> @Test -> @After;
2、執行順序
隨機執行
@FixMethodOrder(MethodSorters.DEFAULT)
public class TestOrder
按testcase名稱字符串順序執行
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestOrder
3、代碼注入Mock
JMokit中的@Mocked與@Injectable區別
public class CommonDaoTest {
@Mock
private MongoTemplate mongoTemplate;? //注入mongdb mock類,不訪問庫
@InjectMocks????? //注入的目標類,要實現的test類
private CommonDao commonDao;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this); //此處一定要記得加上,否則出錯
}
@Test
public void dropCollectionName() {
doNothing().when(mongoTemplate).dropCollection("116");
commonDao.dropCollectionName("116");??? //CommonDao實現了刪除文檔的功能
}
}
org.jmockit
jmockit
1.23
test
4、各種mock示例
when(systemConfigurationService.getConfiguration(eq(String.class), anyString())).thenReturn("(\\d+\\.*\\d*)");
when(objService.getKnowledgePointList(anyList())).thenReturn(objectiveKnowledges);
when(mongoTemplate.updateFirst(any(Query.class), any(Update.class), anyString())).thenReturn(mock(WriteResult.class));
when(mongoTemplate.collectionExists("111")).thenReturn(false);
when(configRepository.findByType(anyString())).thenReturn(mock(Config.class));
總結
以上是生活随笔為你收集整理的java junit4_JUnit4使用Java5中的单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑黑屏故障排除实例
- 下一篇: java反射 获取局部变量_Java反射