今天想向大家分享的是有關 Flutter 進行單元測試及整合測試的部分
我們實作完畫面呈現後相信會對自己的畫面再進行一次完整的測試吧
那在 Flutter 中是如何去實作的呢?
我們今天主要要來探討的便是這個 ~
首先先檢查 pubspec.yaml 是否有使用 test
dev_dependencies:
test: <latest_version>
而擺放程式碼的方式官方給的範例為
counter_app/
lib/
counter.dart
test/
counter_test.dart
而測試檔案的命名傳統會是以 _test.dart
來當作結尾
首先是要測試的程式碼
class Counter {
int value = 0;
void increment() => value++;
void decrement() => value--;
}
實作測試用的程式碼
而在這邊所使用的 Assert 函式為 expect
// Import the test package and Counter class
import 'package:counter_app/counter.dart';
import 'package:test/test.dart';
void main() {
test('Counter value should be incremented', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});
}
而這邊則透過 group
將各段測試給組合起來
import 'package:counter_app/counter.dart';
import 'package:test/test.dart';
void main() {
group('Counter', () {
test('value should start at 0', () {
expect(Counter().value, 0);
});
test('value should be incremented', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});
test('value should be decremented', () {
final counter = Counter();
counter.decrement();
expect(counter.value, -1);
});
});
}
而如果要進行測試的話
可透過以下指令來測試
flutter test test/counter_test.dart
透過撰寫測試可以有效的提高程式的可靠性
因此如果在專案過程中如果行有餘力的話
撰寫測試程式碼會讓自己未來檢視時或進行程式碼重構時輕鬆一點
至於單元測試的心法及整合測試的必要
可以參考網路上大量文章
因此在此就不多加冗述了 ~