Tôi đang xem PHPUnit và những điều sau đây khiến tôi băn khoăn. Có hay không PHPUnit xử lý int. 1 và 0 là boolean? Trong thử nghiệm hiện tại của tôi, nó không.PHPUnit Assert True One (1)
Ví dụ: $this->assertTrue(preg_match('/asdf/', 'asdf'));
Trong thử nghiệm của tôi này không thành công, vì preg_match() đang trở lại int 1 hoặc 0 và chỉ bool false nếu có một lỗi.
Tôi lấy các tác phẩm sau đây, rõ ràng, vì so sánh luôn trả về giá trị bool. $this->assertTrue(preg_match('/asdf/', 'asdf') === 1);
Tôi có thiếu thứ gì đó trong preg_match của mình hoặc xác nhận của tôi để làm cho nó ... ít nghiêm ngặt hơn không?
EDIT: Không khẳng địnhTrue yêu cầu loại để khớp? Có cách nào để đưa ra quyết định kém chặt chẽ hơn không?
này doesn' t trả lời câu hỏi của tôi, nhưng chắc chắn là một bình luận xứng đáng. Cảm ơn bạn, lưu ý. – alairock
'assertTrue' không kiểm tra giá trị' true' thực sự, không phải cái gì "trung thực" là "1". – Sven
Để cụ thể hơn, tôi hiểu những gì bạn đang nói là: 'assertTrue' trong PHPUnit thực hiện so sánh" ba lần ", và không phải là so sánh" gấp đôi ". (Xem 'var_dump (1 == true);' và 'var_dump (1 === true);' Giá trị đầu tiên trả về true và giá trị thứ hai trả về false, vì "ba bằng" cũng khớp với kiểu. Tôi sẽ chỉnh sửa bản gốc để cụ thể. – alairock