Bạn có thể thử java.io.File trong mã Groovy với Spock.
Dưới đây là một ví dụ về làm thế nào để làm điều đó:
import spock.lang.Specification
class FileSpySpec extends Specification {
def 'file spy example'() {
given:
def mockFile = Mock(File)
GroovySpy(File, global: true, useObjenesis: true)
when:
def file = new File('testdir', 'testfile')
file.delete()
then :
1 * new File('testdir','testfile') >> { mockFile }
1 * mockFile.delete()
}
}
Ý tưởng là để trở Spock giả của tập tin từ một java.io.File gọi constructor kỳ vọng trong đó có các thông số mong đợi.
Nguồn
2014-04-14 05:23:01
Tôi không biết bạn có thể sử dụng Mock trên jdk api. Không thực sự những gì tôi đang tìm kiếm, nhưng nó đã giúp. Cảm ơn! – Akolopez
Bạn có thể sử dụng giả lập * hoặc * một điệp viên toàn cầu, tùy thuộc vào việc bạn muốn giả lập một trường hợp cụ thể hay tất cả. –
Đối với những người chia sẻ sự tò mò của tôi (và sự thiếu hiểu biết) về 'useObjenesis: true'. Theo trang web, [Objenesis] (http://objenesis.org/) cho phép tạo các đối tượng mà không thông qua các tham số hàm tạo. (Lưu ý rằng tất cả các hàm tạo cho [File] (https://docs.oracle.com/javase/7/docs/api/java/io/File.html) yêu cầu tham số) –