springboot~讓我習慣了TDD的開發模式


TDD是什么

TDD就是測試驅動開發,以測試用例為主導,去開發項目,業務代碼該怎么寫還是怎么寫,在實現UI之前,可以先實現Test用例,通過test來實現對業務場景的模擬,最終讓你的代碼更穩定。

大叔認為tdd的作用

  1. 代碼更穩定,bug在發布之前被暴露出來
  2. 持續集成更需要它,當你的項目通過tdd之后,就可以通過自動化工具發布了,這最起碼保證了代碼是沒有問題的
  3. 核心模塊更穩定,當你的核心模塊修改或者添加新功能后,你需要寫測試用例來保存你我修改和添加的模型是正確的,最起碼保證了它沒有修改其它的功能,因為你的代碼可能被多個模塊引用,而每個模塊都有自己的測試用例,所以,核心模塊修改后,需要為它做測試。

項目與測試項目是統一的

在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;
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM