TDD是什么
TDD就是測試驅動開發,以測試用例為主導,去開發項目,業務代碼該怎么寫還是怎么寫,在實現UI之前,可以先實現Test用例,通過test來實現對業務場景的模擬,最終讓你的代碼更穩定。
大叔認為tdd的作用
- 代碼更穩定,bug在發布之前被暴露出來
- 持續集成更需要它,當你的項目通過tdd之后,就可以通過自動化工具發布了,這最起碼保證了代碼是沒有問題的
- 核心模塊更穩定,當你的核心模塊修改或者添加新功能后,你需要寫測試用例來保存你我修改和添加的模型是正確的,最起碼保證了它沒有修改其它的功能,因為你的代碼可能被多個模塊引用,而每個模塊都有自己的測試用例,所以,核心模塊修改后,需要為它做測試。
項目與測試項目是統一的
在springboot框架里,我們在建立一個項目后,會同時建立一個測試項目,大叔覺得,這是一個很好的設計和習慣,對於.net開發人員來說,也應該這樣,在建立一個項目后,同時也寫一下它的單元測試!
mongodb模塊的測試
public class MongodbTest {
@Autowired
MongoTemplate mongoTemplate;
@Test
public void add() {
List<TaxAmountConfig.AmountConfig> amountConfigs = ImmutableList.of(
TaxAmountConfig.AmountConfig.builder()
.rate(1)
.thresholdMax(5000)
.thresholdMin(3000)
.value(10)
.build()
);
TaxAmountConfig taxAmountConfig = TaxAmountConfig.builder()
.base(3000)
.accountPeriod(YearMonth.of(2017, 5))
.amountConfigs(amountConfigs)
.build();
mongoTemplate.insert(taxAmountConfig);
}
}
測試時帶有環境屬性
你的測試代碼完全可以指定一種環境,如開發,生產,測試等,對哪個環境有效,可以通過@Profile來實現
@Configuration
@Profile("integTest")
public class MockClientTest {
@Bean
public MockClient mockClient() {
MockClient client = mock(MockClient.class);
when(client.balanceSheet(
anyString()))
.thenReturn("OK");
return client;
}
}