Tôi nghĩ có thể trong trình duyệt (phía máy khách) đến CSS "thử nghiệm đơn vị". Nó sẽ giống như một trình kiểm tra tự động hơn là kiểm tra đơn vị:
- Đánh giá các điều kiện thuộc tính CSS cuối cùng mà chúng tôi muốn giữ lại cho một lớp CSS cụ thể (kết quả).
- Chúng tôi yêu cầu HTML tài liệu thử nghiệm để hiển thị nội dung tĩnh và CSS. Tất cả các yếu tố phải được bao gồm trong nội dung trong các vùng chứa riêng biệt.
- Sau khi kết xuất, hãy kiểm tra bằng javascript thuộc tính cuối cùng hoặc kết quả cuối cùng của các mục tiêu đã chọn và xuất các phần tử không khớp. trường hợp thử nghiệm
Đơn vị:
DOM selectors:
.test1
.test2
#test3
này nên luôn luôn có các thuộc tính cuối cùng:
CSSAttribute1, CSSFinalValue1
CSSAttribute2, CSSFinalValue2
CSSAttribute3, CSSFinalValue3
Một chức năng để thiết lập quy tắc kiểm tra trong JS có thể là:
addCSSUnitTest(".test1, .test2, #test3", "margin-left: 4px; font-size: 8px");
Sau đó, chúng tôi kiểm tra xem các phần tử DOM có thuộc tính cuối cùng này hay không.
Tất cả được thực hiện trong javascript sau khi hiển thị. Nhưng dù sao điều này là không thực tế bởi vì bạn sẽ phải xây dựng nhiều trường hợp thử nghiệm đơn vị sẽ làm tăng đáng kể mã của bạn.
Ngoài ra, bạn phải luôn có một tệp reset.css để "tương thích" trên trình duyệt chéo.
An thay thế sẽ chỉ định các lớp CSS mà bạn biết nên giữ nguyên toàn bộ thuộc tính của chúng. Tạo danh sách bộ chọn DOM. Sử dụng jQuery để lấy các thuộc tính lớp CSS (trực tiếp từ lớp CSS) và kiểm tra xem chúng có được bảo toàn trong các phần tử DOM đích hay không. Phương pháp cuối cùng này có thể gần như hoàn toàn tự động, nhưng sẽ yêu cầu trình kiểm tra javascript phức tạp hơn. người cuối cùng này sẽ không kiểm tra CSS cho selectors ID (ví dụ: "# Test3"), chỉ có các lớp học (ví dụ:" .test1")
Các ý kiến về nó không được turing hoàn chỉnh, không đơn vị kiểm tra, vv .. chỉ là lame. Ví dụ, kế thừa (xếp tầng) trong css là cái gì đó sẽ rất thú vị để kiểm tra. Tinh chỉnh trên nhiều trình duyệt cũng rất thú vị để xác minh. Và selen, hoặc bất kỳ giải pháp nào khác trong trình duyệt không có vẻ như nó có thể hoạt động. Trừ khi có thể nó dựa trên một cái gì đó như qunit/jquery và thực sự chọc DOM để xem liệu CSS có áp dụng như tác giả dự định (và có thể chạy/thử nghiệm trong các trình duyệt khác nhau để xác nhận nó hoạt động). – Evgeny
Bao gồm kiểm tra CSS trong các thử nghiệm có thể giúp chứng minh một số yêu cầu kinh doanh trong BDD (chẳng hạn như kích thước của một cái gì đó là NxN và màu xanh dương). Những loại điều này chắc chắn có thể kiểm chứng, ngay cả khi sự xuất hiện của chúng trong tác nhân người dùng X không đáp ứng các yêu cầu đã nói (đó là nơi mà selen có thể lấp đầy khoảng trống) –