CodeGym/Khóa học Java/Mô-đun 3/Dự án liên quan: thử nghiệm và đăng nhập

Dự án liên quan: thử nghiệm và đăng nhập

Có sẵn

Chương trình này là một sự bắt chước của một hippodrome

Để bắt đầu, như trong dự án trước, hãy tạo cho mình một nhánh rẽ từ kho lưu trữ: https://github.com/CodeGymCC/hippodrome và tự sao chép nhánh rẽ nhánh này.

Nhiệm vụ của bạn là thêm thử nghiệm và ghi nhật ký.

Danh sách các bài kiểm tra bắt buộc

Trong danh sách sau đây, mỗi mục phải được thực hiện như một phương pháp thử nghiệm riêng biệt. Khi nghĩ ra tên cho các phương pháp thử nghiệm, hãy cố gắng ngắn gọn, nhưng đồng thời, để bạn có thể hiểu đại khái chính xác những gì đang được thử nghiệm trong chúng. Ví dụ: so sánh hai kết quả kiểm tra này:

Trong trường hợp thứ hai, khó hiểu hơn loại bài kiểm tra nào không vượt qua và bạn sẽ phải xem nhật ký.

1. Hạng ngựa:

  1. người xây dựng
    • Kiểm tra xem khi được chuyển đến hàm tạo làm tham số đầu tiên IllegalArgumentException, sẽ bị ném null. Để làm điều này, sử dụng phương pháp assertThrows;
    • Kiểm tra xem khi được chuyển đến hàm tạo làm tham số đầu tiên null, ngoại lệ được ném ra sẽ chứa thông báo "Tên không được rỗng". Để làm điều này, bạn cần nhận được một thông báo từ ngoại lệ bị bắt và sử dụng assertEquals;
    • Kiểm tra xem khi chuyển một chuỗi rỗng hoặc một chuỗi chỉ chứa các ký tự khoảng trắng (dấu cách, tab, v.v.) làm tham số đầu tiên cho hàm tạo, IllegalArgumentException. Để kiểm tra với các biến thể khác nhau của các ký tự khoảng trắng, bạn cần thực hiện kiểm tra được tham số hóa;
    • Kiểm tra xem khi chuyển một chuỗi rỗng hoặc một chuỗi chỉ chứa các ký tự khoảng trắng (dấu cách, tab, v.v.) cho hàm tạo làm tham số đầu tiên, ngoại lệ được ném ra sẽ chứa thông báo "Tên không được để trống.";
    • Kiểm tra xem khi một số âm được chuyển đến hàm tạo làm tham số thứ hai, IllegalArgumentException;
    • Kiểm tra xem khi một số âm được truyền cho hàm tạo làm tham số thứ hai, ngoại lệ được ném ra sẽ chứa thông báo "Tốc độ không được âm.";
    • Kiểm tra xem khi một số âm được chuyển đến hàm tạo làm tham số thứ ba, IllegalArgumentException;
    • Kiểm tra xem khi chuyển một số âm làm tham số thứ ba cho hàm tạo, ngoại lệ được ném ra sẽ chứa thông báo "Khoảng cách không được âm.";
  2. phương thức getName
    • Kiểm tra xem phương thức có trả về chuỗi được truyền làm tham số đầu tiên cho hàm tạo không;
  3. phương thức getSpeed
    • Kiểm tra xem phương thức có trả về số được truyền dưới dạng tham số thứ hai cho hàm tạo không;
  4. phương thức getDistance
    • Kiểm tra xem phương thức có trả về số được truyền dưới dạng tham số thứ ba cho hàm tạo không;
    • Kiểm tra xem phương thức có trả về 0 không nếu đối tượng được tạo bằng hàm tạo có hai tham số;
  5. phương pháp di chuyển
    • Kiểm tra xem phương thức có gọi bên trong phương thức getRandomDoublecó tham số 0,2 và 0,9 không. Để làm điều này, bạn cần sử dụng MockedStaticphương pháp của nó verify;
    • Kiểm tra xem phương thức có gán giá trị khoảng cách được tính theo công thức: distance + speed * getRandomDouble(0.2, 0.9). Để làm điều này, bạn cần khóa nó getRandomDoubleđể nó trả về một số giá trị nhất định mà bạn cần đặt bằng cách tham số hóa bài kiểm tra.

2. Lớp học hippodrome:

  1. Người xây dựng
    • Kiểm tra xem khi được chuyển đến hàm tạo IllegalArgumentException, ; sẽ bị ném null;
    • Kiểm tra xem khi được chuyển đến hàm tạo null, ngoại lệ được ném ra sẽ chứa thông báo "Horses could be null.";
    • Kiểm tra xem khi chuyển một danh sách trống tới hàm tạo, ; sẽ bị ném ra IllegalArgumentException;
    • Kiểm tra xem khi chuyển một danh sách trống tới hàm tạo, ngoại lệ được ném ra sẽ chứa thông báo "Ngựa không thể để trống.";
  2. phương thức getHorses
    • Kiểm tra xem phương thức có trả về một danh sách chứa các đối tượng giống nhau và theo cùng thứ tự như danh sách đã được chuyển đến hàm tạo hay không. Khi tạo đối tượng Hippodrome , hãy chuyển danh sách 30 con ngựa khác nhau cho hàm tạo;
  3. phương pháp di chuyển
    • Kiểm tra xem phương thức có gọi phương thức di chuyển trên tất cả các ngựa không. Khi tạo đối tượng Hippodrome, hãy chuyển danh sách 50 con ngựa giả cho hàm tạo và sử dụng phương thức verify.
  4. phương thức getWinner
    • Kiểm tra xem phương thức có trả về con ngựa có giá trị khoảng cách lớn nhất không.

3. Lớp học chính

  1. phương pháp chính
    • Kiểm tra xem phương thức có được thực thi không quá 22 giây không. Để thực hiện việc này, hãy sử dụng chú thích Hết giờ. Sau khi viết bài kiểm tra này, hãy tắt nó (sử dụng chú thích Đã tắt). Vì vậy, sẽ không mất thời gian để chạy tất cả các bài kiểm tra và nếu cần, nó có thể được chạy thủ công.

Những gì cần phải được đăng nhập

1. Hạng chính:

  1. Sau khi tạo đối tượng hippodrome, hãy thêm một mục như thế này vào nhật ký:2022-05-31 17:05:26,152 INFO Main: Start of the race. Number of participants: 7
  2. Sau khi hiển thị thông tin về những người chiến thắng, hãy thêm một mục như thế này vào nhật ký:2022-05-31 17:05:46,963 INFO Main: End of the race. Winner: Cherry

Lớp học hippodrome:

  1. Nếu null được truyền cho hàm tạo, thì trước khi ném ngoại lệ, hãy thêm một mục như thế này vào nhật ký:2022-05-31 17:29:30,029 ERROR Hippodrome: Horses list is null
  2. b. Nếu một danh sách trống được chuyển đến hàm tạo, thì trước khi ném ngoại lệ, hãy thêm một mục như sau vào nhật ký:2022-05-31 17:30:41,074 ERROR Hippodrome: Horses list is empty
  3. Ở cuối hàm tạo, hãy thêm một mục như thế này vào nhật ký:2022-05-31 17:05:26,152 DEBUG Hippodrome: Created a Hippodrome with [7] horses

3. Hạng ngựa:

  1. Nếu null được chuyển đến hàm tạo thay vì tên, thì trước khi ném ngoại lệ, hãy thêm một mục vào nhật ký như:2022-05-31 17:34:59,483 ERROR Horse: Name is null
  2. Nếu tên được chuyển đến hàm tạo trống, thì trước khi ném ngoại lệ, hãy thêm một mục như sau vào nhật ký:2022-05-31 17:36:44,196 ERROR Horse: Name is blank
  3. Nếu tốc độ được chuyển đến hàm tạo nhỏ hơn 0, thì trước khi ném ngoại lệ, hãy thêm một mục như sau vào nhật ký:2022-05-31 17:40:27,267 ERROR Horse: Speed is negative
  4. Nếu khoảng cách được truyền đến hàm tạo nhỏ hơn 0, thì trước khi ném ngoại lệ, hãy thêm một mục như sau vào nhật ký:2022-05-31 17:41:21,938 ERROR Horse: Distance is negative
  5. Ở cuối hàm tạo, hãy thêm một mục như thế này vào nhật ký:2022-05-31 17:15:25,842 DEBUG Horse: Created a Horse named [Lobster] with speed [2.8]

Nhật ký phải được ghi vào tệp hippodrome.log , tệp này sẽ nằm trong thư mục gốc của dự án trong thư mục nhật ký . Mỗi ngày, tệp phải được đổi tên theo mẫu hippodrome.2021-12-31.log và thay vào đó, nên tạo một tệp hippodrome.log mới . Để thực hiện việc này, hãy sử dụng trình nối thêm RollingFile . Trong trường hợp này, các tệp cũ hơn 7 ngày sẽ bị xóa. Để làm điều này, bạn có thể sử dụng một cấu trúc như:

<DefaultRolloverStrategy>
    <Delete>
        <IfFileName/>
        <IfLastModified/>
    </Delete>
</DefaultRolloverStrategy>

Googled những gì để thay thế thay vì ba dấu chấm.😊


Phân tích dự án . Xem sau khi hoàn thành!

Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào