hi hi ສະບາຍດີທຸກຄົນທີ່ກຳລັງສຶກສາ flutter ມື້ນີ້ຂໍສະເໜີຄຳວ່າ “Unit Testing” 555.
ບລັອກນີ້ເກີດຂື້ນຈາກການແນມໄປເຫັນ test folder ໃນໂປຣເຈັກທີ່ກຳລັງເຮັດຢູ່ ເປັນ folder ທີ່ວ່າງແຮງ ^^’. ກໍ่ເລີຍຈັບມາເປັນຫົວຂໍ້ແນະນຳ ແລ້ວກໍຂຽນເທັດຂອງໂປຣເຈັກໄປພ້ອມເລີຍ555.
unit testing ຄືການເອົາ function ຫລື class ທີ່ເຮົາສ້າງມາເທັດເທຶ່ອລະອັນວ່າໂລຈິກຂອງຟັງຊັ່ນພວກນີ້ເປັນໄປຕາມທີ່ມັນຄວນຈະເປັນແລ້ວບໍ່ ຕາມຊື່ເລີຍ.
# ເລີ່ມຕົ້ນດ້ວຍການໄປທີ່ pubspec.yaml ເພີ່ມ flutter_test ໃນສ່ວນຂອງ dev_dependencies
dev_dependencies:
flutter_test:
ຕໍ່ດ້ວຍການ ກຽມ function ທີ່ຕ້ອງການເທັດ
# ສ້າງ counter.dart file ຢູ່ lib folder lib/counter.dart
class Counter {
int value = 0;
void increment() => value++;
}
ມາເລີ່ມຂຽນເທັດສຳຫລັບ function ທີ່ກຽມໄວ້ກັນເລີຍ
# ສ້າງ counter_test.dart file ຢູ່ໃນ test folder test/counter_test.dart
ການຂຽນເທັດໃນ flutter ເຮົາຈະໃຊ້ຄຳສັ່ງ expect (ຄ່າທີ່ໄດ້ຈາກ function, ຄ່າທີ່ເຮົາຄາດວ່າຄວນຈະໄດ້); ເພື່ອກວດສອບຜົນລັບທີ່ໄດ້ຈາກ function
void main() {
test('Counter value increment', () {
final counter = Counter();
counter.increment(); // function ນີ້ຈະເພີ່ມຄ່າຂອງ value ຂື້ນ +1 ທຸກໆເທື່ອທີ່ເອີ້ນໃຊ້ຄຳສັ່ງ
expect(counter.value, 1); // ຄ່າທີ່ຄວນຈະໄດ້ຈາກ function ຄວນຈະເປັນ 1 ເພາະເຮົາເອີ້ນໃຊ້ function ແຕ່ເທື່ອດຽວ
});
}
ໃນກໍລະນີທີ່ການເທັດມີຫຼາຍເຄສຫຼືຫຼາຍຟັງຊັ່ນເຮົາສາມາດຈັດເທັດເປັນ group ແລ້ວ test ສະເພາະ group ທີ່ຕ້ອງການໄດ້
void main() {
group('increment', () {
final counter = Counter();
test('value start at 0', () {
expect(counter.value, 0);
});
test('value should be 1', () {
counter.increment();
expect(counter.value, 1);
});
test('value should be 2', () {
counter.increment();
expect(counter.value, 2);
});
});
}
ຄຳສັ່ງທີ່ໃຊ້:
flutter test test_file_path
ເພື່ອ run ເທັດເຄສທັງຫມົດ
flutter test test_file_path --name group_name
ເພື່ອ test ສະເພາະ group ທີ່ຕ້ອງການ
ຜົນລັບທີ່ໄດ້ໃນກໍລະນີທີ່ເທັດຜ່ານທັງຫມົດ

ໃນກໍລະນີທີ່ເທັດບໍ່ຜ່ານບາງເຄສ
ສາມາດເຂົ້າໄປອ່ານຂໍ້ມູນເພີ່ມເຕີມ ແລະ ການເທສແບບອື່ນໆຕາມລິ້ງນີ້ໄດ້ເລີຍ https://docs.flutter.dev/testing
ຫວັງວ່າຈະເປັນປະໂຫຍດກັບຄົນທີ່ເຂົ້າມາອ່ານບໍ່ຫລາຍກໍຫນ້ອຍເດີ 😀