Có thể giả lập các lớp học cuối cùng giả lập không? Nếu vậy, làm thế nào? Kết quả tìm kiếm đã đưa ra điều này gist, điều này có vẻ hàm ý như vậy, nhưng tôi không thể tìm thấy bất kỳ ví dụ nào về việc làm như vậy. Tôi cũng đã tìm thấy các bài đăng trên diễn đàn cho biết các lớp cuối cùng chế nhạo không được hỗ trợ.Lớp cuối cùng của mô hình trong Spock
6
A
Trả lời
14
đặc điểm kỹ thuật này:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'lol'() {
given:
def s = Mock(String) {
size() >> 10
}
expect:
s.size() == 10
}
}
kết thúc với ngoại lệ sau đây:
JUnit 4 Runner, Tests: 1, Failures: 1, Time: 29 Test Failure:
lol(Test) org.spockframework.mock.CannotCreateMockException:
Cannot create mock for class java.lang.String because Java mocks cannot mock final classes.
If the code under test is written in Groovy, use Groovy mock.
Các giải pháp là sử dụng GroovyMock
:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('cglib:cglib-nodep:3.1')
import spock.lang.*
class Test extends Specification {
def 'lol'() {
given:
def s = GroovyMock(String) {
size() >> 10
}
expect:
s.size() == 10
}
}
nào hoạt động tốt.
+0
Bất kỳ ý tưởng tại sao điều này không làm việc cho String.length()? –
+0
Sự khác biệt với String.length() là vì nó được định nghĩa trên lớp Java String, không phải phiên bản Groovy? Câu trả lời này (http://stackoverflow.com/a/12177035/369722) dường như gợi ý như vậy. –
Các vấn đề liên quan
- 1. cố gắng, bắt, mô hình cuối cùng autocomplete trong IntelliJ
- 2. Phương pháp không phải cuối cùng trong lớp cuối cùng
- 3. Phương pháp cuối cùng của Proxy Trong lớp học cuối cùng
- 4. Django: mô hình ngày mod cuối cùng và số mod
- 5. Sử dụng Spock để giả lập biến số cuối cùng riêng tư trong Java
- 6. Lớp enum cuối cùng trong C++ 11
- 7. Bộ chọn CSS cuối cùng của con: chọn yếu tố cuối cùng của lớp cụ thể, không phải là con cuối cùng bên trong cha mẹ?
- 8. PHP Mocking cuối cùng Lớp
- 9. Spock xác minh một ngoại lệ được ném bởi mô hình cùng với sự tương tác giả
- 10. Lấy mô hình/tên lớp của mô hình Backbone
- 11. Extract Tất cả Nhân vật sau khi xuất hiện cuối cùng của một mô hình C#
- 12. Đào tạo lại lớp cuối cùng của Inception-ResNet-v2
- 13. Các lớp học cuối cùng trong Java không nên là cuối cùng hoặc ngược lại?
- 14. Phương pháp cuối cùng có thể sử dụng Powermockito trong lớp bê tông không cuối cùng?
- 15. Mô phỏng thử-với-cuối cùng trong OCaml
- 16. Tại sao cuối cùng là lớp Chuỗi?
- 17. biến không phải lớp cuối cùng bên trong java
- 18. Theo dõi các thay đổi kể từ lần lưu cuối cùng trong các mô hình django
- 19. Nhận kích thước cuối cùng của hình nền
- 20. Cách lấy id được chèn cuối cùng trong mô hình địa chỉ khách hàng Magento
- 21. Ngày cuối cùng của tháng trong .NET
- 22. Làm thế nào để di chuyển đến hàng cuối cùng của một mô hình Sqlite trong một QTableView?
- 23. Jquery Nhận hàng cuối cùng của bảng trong yếu tố cuối cùng trong một loạt
- 24. phần tử cuối cùng có tên lớp trong div
- 25. Các lớp bên trong cuối cùng là gì?
- 26. jQuery Xóa hai ký tự cuối cùng trong một lớp
- 27. Thêm nội dung vào dưới cùng của trang cuối cùng
- 28. Nhận tin nhắn cuối cùng hoặc sự khác biệt của CVS cuối cùng cam kết
- 29. Lệnh cuối cùng trong cùng thiết bị đầu cuối
- 30. R caret train glmnet mô hình cuối cùng lambda giá trị không theo quy định
Đôi khi, với Groovy, tốt nhất bạn nên dùng thử. – cjstehno
@cjstehno Tôi đã thử và có ngoại lệ. Nhưng tôi nghĩ có thể có một cách làm đặc biệt mà tôi không biết. –
Câu trả lời của tôi có giải quyết được vấn đề không? – Opal