fast-mock是一個快速生成測驗類、Mock方法的工具,它使寫集成、單元測驗這件事情,變得簡單而有趣!
一方面,寫單元測驗本身比較繁瑣,技術挑戰不大,很多研發工程師不愿意去寫;
另一方面,國內研發比較偏向“快、糙、猛” ,容易因為開發進度緊,導致單元測驗的執行虎頭蛇尾,
關鍵問題還是研發團隊需要建立對單元測驗正確的認知,漸進明細,逐步改進,
fast-mock可以解決繁瑣的單測撰寫,提升作業效率,讓研發工程師更專注業務的實作,
PS:團隊前期沒有單測的沉淀,可以先從整個介面的集成測驗開始,逐步重構代碼,往單測的方向靠近,
特點
- 快速生成測驗類: 生成一個包含設定Case名稱、組裝測驗介面的引數、呼叫方法、斷言的測驗模板,
- 自動識別生成Mock方法:根據測驗介面自動識別需要Mock的方法,并且進行代碼生成,
- 自動構造入參、出參物體:根據入參、出參物件,自動進行資料構造,簡單理解就是實體化物件,并進行set操作,
- 靈活切換:支持同時Mock、查詢資料庫、Redis,RPC請求,
使用
1、引入mock依賴:
<properties>
<testable.version>0.6.2</testable.version>
</properties>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.8.47</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba.testable</groupId>
<artifactId>testable-all</artifactId>
<version>${testable.version}</version>
<scope>test</scope>
</dependency>
2、依賴插件:
<plugins>
<plugin>
<groupId>io.github.techthird</groupId>
<artifactId>fast-mock-maven-plugin</artifactId>
<version>1.0.5</version>
<configuration>
<!-- 待測驗類的包名com.test.demo.service.provider,或者測驗指定類檔案xxxx.java) -->
<testPackageName>com.test.demo.service.provider.ItemReadServiceImpl.java</testPackageName>
<!-- 指定生成Test方法,多個方法以,號分隔,默認生成一個類中所有方法 -->
<testMethods>method1,method2</testMethods>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>-javaagent:${settings.localRepository}/com/alibaba/testable/testable-agent/${testable.version}/testable-agent-${testable.version}.jar</argLine>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
3、生成測驗代碼
在引入插件的專案模塊下運行maven插件 fast-mock:test 命令
mvn fast-mock:test
默認生成測驗代碼存放目錄:test/你的測驗類包名



4、小提示
- 重復生成:一個被測類重復生成,為了防止代碼的覆寫,將采用方法對比后進行追加處理,將始終一個Test類、一個Mock類,
- 盡量保證生成的測驗、Mock方法唯一,對同名不同引數的方法支持不太友好,
- BaseTestCase類的說明:該類定義了啟動Spring應用程式所需的配置,默認配置如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class BaseTestCase {
}
開源專案地址
https://github.com/techthird/fast-mock-test
問題反饋
目前專案處于初始階段,Bug肯定是無法避免的,團隊試用下來,不是特別偏門的介面,都能成功生成,
如果您感興趣或者有問題可加微信guiyong_chen溝通交流, 備注:fast-mock
感謝
1、一個堪稱指哪打哪的Mock框架 https://github.com/alibaba/testable-mock
2、站在巨人的肩膀上,完成二次改造
https://github.com/chenhaoxiang/primo/tree/master/primo-generator-mock-test
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330287.html
標籤:其他
