Tôi đang sử dụng mockito và cố gắng giả lập một đối tượng scala.Mocking scala object
object Sample { }
//test
class SomeTest extends Specification with ScalaTest with Mockito {
"mocking should succeed" in {
val mockedSample = mock[Sample]
}
}
Điều này cho tôi hai lỗi biên dịch.
error: Not found type Sample
error: could not find implicit value for parameter m:
scala.reflect.ClassManifest[<error>]
Nếu tôi thay đổi Mẫu từ đối tượng đến lớp, nó hoạt động. Có thể giả lập đối tượng scala bằng mockito không? Nếu có thì sao?
Chắc chắn đồng ý ở đây. Bạn có thể thử giả lập [Sample.type], nhưng tôi nghi ngờ nó sẽ hoạt động trong thực tế. Tôi khuyên bạn nên có mẫu mở rộng một số đặc điểm giao diện và giả lập nó theo cách đó. Vấn đề lớn là nếu bạn muốn tiêm mô hình của bạn thay cho mẫu Singleton, bạn sẽ phải thực hiện một số phép thuật phản chiếu đẹp, ác, vui nhộn. Nếu bạn quan tâm, chúng tôi có thể đăng bài đó. – jsuereth
Tôi đã xem mã nguồn Mockito ngày hôm sau để trả lời một câu hỏi liên quan (vì lý do nào đó tôi không thể tìm thấy, bây giờ) và dường như tôi nhớ lại một trong những máy phát "giả" chỉ trả về một giá trị cụ thể thay vì cố gắng để tạo ra các biến thể/biến thể. –
Có cách nào để thực hiện điều này với Powermock hoặc tương tự không? Nếu tôi có một phương thức (hiệu quả toàn cầu) trên một đối tượng đồng hành, có vẻ như hợp lý khi muốn giả lập hành vi của nó; chắc chắn đây là một mô hình phổ biến trong thế giới ruby. – Korny