Bài này dành ra để xử lý 1 vấn đề của bài 11.
- Chẳng nhẽ lúc nào test với cái Title và Body như vậy? Có cách nào tạo data test tự động không?
Trước khi bắt đầu mình cần phải làm rõ 2 vấn đề:
- Dummy data là dữ liệu “ngu ngốc” thường được tạo để làm data test, không có ý nghĩa gì cả.[NOTED] Cách khác để tạo dummy data https://giangtester.com/tao-dummy-fake-data-bang-faker/
- Unit Test là cái mà các bạn tester thường được nói là test do developer viết, một vài người còn hiểu sai bảo Unit test là test từng Element ở 1 trang web hoặc mobile app. Không phải như vậy!!!Unit Test là test những method và function code. Việc viết script automation cũng chính là việc xây dựng 1 cái application để test cái application của dự án. Những cái method test của chúng ta viết ra chắc gì đã đúng, chúng ta cũng cần phải test lại chứ.
Áp dụng vào bài toán thực tế, chúng ta cần tạo ra 1 bộ dummy data cho Title và Body cho 1 bài viết.
Trước tiên, ta hình dung trong đầu cách chúng ta sẽ làm. Ta sẽ có 1 list các từ vựng, sau đó random lấy các từ đấy ra rồi ghép chúng lại với nhau. Ta sẽ thực hiện qua 3 bước:
- Tạo list các từ vựng
- Random lấy các từ trong list đó
- Ghép chúng lại với nhau
1. Cách tạo list các từ vựng, ta có rất nhiều cách ví dụ như lưu list từ vựng vào 1 file, sau đó đọc file đó, hoặc là thành lập luôn 1 list từ vựng rồi lưu thành 1 biến như thế này:
Để lấy 1 phần tử trong list trên, ta chỉ cần sử dụng cú pháp: array[index]. Ví dụ:words[0] -> “man”
2. Ta cần phải làm cho số index ở trên là 1 số random. Ta sử dụng class Function mà Java đã cung cấp sẵn trong package java.until
3. Ghép các từ vựng được lấy random ra.
Cái mà chúng ta vừa làm xong là tạo ra được 1 bộ random String, bây giờ để phân biệt cho Title và Body ta có thể thêm suffix [“, title”] và [“, body”] vào cuối randomString.Ta có 2 function mới như sau:
Nếu bạn sợ rằng cái randomString mà bạn viết có thể bị trùng nhau, sẽ gây khó khăn khi check data sau này, bạn chỉ cần add thêm thời gian hiện tại vào phía sau là xong. Ở đây mình dùng miliseconds để tránh việc bị trùng
Chốt lại, class Generator chuyên dùng để tạo dummy data có hình dạng như sau:
Tạo Dummy data đã xong, ta đến phần viết Unit Test để check xem cái chúng viết đã đúng hay chưa. Unit Test là 1 phần của Test-Driven Development, sẽ có nhiều vấn đề về nó. Ở đây, mình tạm viết 1 version đơn giản có sử dụng cái @Test của TestNG:
Sau đó bạn run và nhìn trên console Log để xem kết quả đã đúng chưa. Thực ra thì nên dùng Assert để check kết quả nhưng mà thôi, mình lười rồi, kiểm tra bằng mắt nhé.
OK Done, đã fix xong 1 vấn đề nữa. @@