大型專案裡Flutter測試應用例項整合測試深度使用
導讀 | 這篇文章主要為大家介紹了大型專案裡Flutter測試應用例項整合測試深度使用詳解,有需要的朋友可以借鑑參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪 |
await tester.pumpWidget( new StatefulBuilder( builder: (BuildContext context, StateSetter setState) { return new MaterialApp( home: new Material( child: new Center( child: new Slider( key: sliderKey, value: value, onChanged: (double newValue) { setState(() { value = newValue; }); }, ), ), ), ); }, )
應用的功能越多,手動測試就越困難。一整套自動化測試將幫助確保應用程式在釋出前正確執行,同時保持功能和錯誤修復速度。 有很多種自動化測試。總結如下: 單元測試:測試單個函式、方法或類。例如,被測試單元的外部依賴性通常是模擬的,例如package:mockito。單元測試通常不會讀取/寫入磁碟、呈現到螢幕或從執行測試的程式外部接收使用者操作。單元測試的目標是驗證邏輯單元在各種條件下的正確性。
await tester.tap(find.byKey(sliderKey)); expect(value, equals(0.5));
小部件測試:(在其他UI框架中稱為元件測試)用於測試的單個小部件。測試小部件涉及多個類,需要為測試環境提供適當的小部件生命週期上下文。例如,它應該能夠接收和響應使用者操作和事件,執行佈局,並例項化子部件。因此,Widget測試比單元測試更全面。然而,就像單元測試一樣,小部件測試環境被一個比完整UI系統簡單得多的實現所取代。小部件測試的目標是驗證小部件的UI外觀和互動是否符合預期。
testWidgets('my first widget test', (WidgetTester tester) async { var sliderKey = new UniqueKey(); var value = 0.0;
整合測試:測試整個應用程式或應用程式的大部分。通常,整合測試可以在真實裝置或作業系統模擬器(如iOS模擬器或Android模擬器)上執行。測試中的應用程式通常與測試驅動程式程式碼隔離,以避免結果偏差。整合測試的目標是驗證應用程式作為一個整體是否正確執行,以及它所包含的所有小部件是否按預期相互整合。還可以使用整合測試來驗證應用程式的效能。
import 'package:test/test.dart'; void main() { test('my first unit test', () { var answer = 42; expect(answer, 42); }); }
一些Flutter庫(如dart:ui)在獨立dart VM附帶的dart SDK中不可用。此顫振測試 允許在本地Dart VM中執行測試,並使用顫振引擎而無需首頁(UI將不會顯示)。使用此 ,可以執行任何測試,無論它是否取決於Flutter庫。 使用package:test編寫Flutter單元測試。用於編寫單元測試的package:test檔案在這裡。
dev_dependencies: flutter_test: sdk: flutter
即使的測試本身沒有顯式匯入到flatter_test中,因為測試框架本身在後臺使用它。 要執行測試,請從專案目錄(而不是測試子目錄)執行fluttertesttest/unit _ test.dart 要執行所有測試,請從專案目錄執行顫振測試。
Flutter的是:命令列 A包:flatter_ driver(API) 兩者都允許:為整合測試建立指導應用程式,編寫測試,執行測試
import 'package:flutter_driver/driver_extension.dart'; void main() { // 啟用擴充套件 enableFlutterDriverExtension(); }
整合測試是一個簡單的包:測試測試。它使用Flutter驅動程式API告訴應用程式要執行什麼操作,然後驗證應用程式是否執行了此操作。 出於興趣,我們還讓測試記錄效能時間線。我們建立了一個user_ list_ scrolling_ test.dart測試檔案位於my_ app/test_ Driver/down中:
void main() { group('scrolling performance test', () { FlutterDriver driver; setUpAll(() async { // 連線app driver = await FlutterDriver.connect(); }); tearDownAll(() async { if (driver != null) { // 關閉連線 driver.close(); } });
構建--目標應用程式並將其安裝在裝置上 啟動應用程式 在driver/_ list_ scrolling_ test.dart下執行my_ app/test_ User 可能想知道該命令如何找到正確的測試檔案。flutter drive命令使用約定在與--target應用程式相同的目錄中查詢具有相同檔名的檔案,但帶有帶有測試字尾的_Test檔案。
彈性框本身(行和列)的行為是不同的,這取決於它們在給定方向上是有邊界的還是無邊界的。 在邊界限制下,它們將盡可能大。 它們試圖使其子節點在沒有邊界限制的情況下適應此方向。在這種情況下,不能將子節點的flex屬性設定為0以外的任何值(預設值為0)。在小部件庫中,這意味著當彈性框位於另一個彈性框或可滾動框內時,不能使用Expanded。如果執行此操作,將收到異常訊息。 在交叉方向上,例如Column的寬度和Row的高度,它們不能是無邊界的,否則它們將無法合理地對齊子節點。
for (int i = 0; i < 5; i++) { await driver.scroll( userList, 0.0, -300.0, new Duration(milliseconds: 300)); await new Future<Null>.delayed(new Duration(milliseconds: 500));
這些約束有時是“緊”的,這意味著它們不會為渲染框留出空間來確定其自身的大小(例如,如果最小寬度和最大寬度相同,即寬度很窄)。主要示例是App小部件,它是RenderView類中包含的一個小部件。
for (int i = 0; i < 5; i++) { await driver.scroll( userList, 0.0, 300.0, new Duration(milliseconds: 300)); await new Future<Null>.delayed(new Duration(milliseconds: 500)); }
應用程式構建函式返回的子小部件的渲染框被分配了一個約束,迫使它精確地填充應用程式的內容區域(通常是整個螢幕)。Flutter中的許多框,特別是那些只包含一個子控制元件的框,會將其約束傳遞給其子控制元件。這意味著,如果在應用程式渲染樹的根處巢狀一些框,則所有子節點都受這些渲染框的約束。
summary.writeSummaryToFile('stocks_scroll_perf', pretty: true); summary.writeTimelineToFile('stocks_scroll_perf', pretty: true);
以上就是大型專案裡Flutter測試應用例項整合測試深度使用詳解的詳細內容
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2933061/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 應用<測試專案>官網
- 如何測試 Flutter 應用? ー 單元測試Flutter
- 測試面試-測試用例面試
- flutter driver 整合測試Flutter
- Flutter 學習之路 - 測試(單元測試,Widget 測試,整合測試)Flutter
- Flutter測試(二):在專案中進行 Widget 測試Flutter
- 測試——水杯的測試用例
- 測試用例和測試方法
- 測試用例
- Kafka效能測試例項Kafka
- Jmeter介面測試例項-牛刀小試JMeter
- 【專項測試系列】-快取擊穿、穿透、雪崩專項測試快取穿透
- 【黑盒測試】測試用例的常用方法
- 測試用例—教室
- 【5】測試用例
- 自動化測試|Eolink Apikit 如何儲存、使用測試用例API
- Flutter 初始專案單元測試解讀Flutter
- 使用jest測試Koa應用
- 使用Java JUnit框架裡的@SuiteClasses註解管理測試用例Java框架UI
- VScode配置 Django專案 使用應用下的tests.py測試VSCodeDjango
- 萬能測試用例及測試用例編寫方法(待更新)
- 手工測試用例與自動化測試用例的區別
- postman寫測試用例Postman
- 測試用例的方法
- 黑盒測試用例二
- 面經-測試用例
- Flutter應用進行自動化測試Flutter
- 【功能測試】兩部電梯的測試用例
- APP測試設計測試用例的要點APP
- C語言[工程專案應用]gtest測試框架編寫以及自定義測試框架C語言框架
- Python專案維護不了?可能是測試沒到位。Django的單元測試和整合測試初探PythonDjango
- C# 使用SpecFlow建立BDD測試用例C#
- iOS原生專案中整合flutter初試iOSFlutter
- 介面測試用例編寫和測試關注點
- 探索性測試的分類與測試用例
- FreeSWITCH測試撥號規則例項
- 在Vue專案中使用snapshot測試Vue
- 使用 Xunit.DependencyInjection 改造測試專案