2014-04-14 21 views
9

Grails'de birim testi için bir dosya alay etmek için herhangi bir yol var mı?Grails java.io.Yüksek alaylık

Dosya boyutunu ve dosya türünü test etmem gerekiyor ve bunlarla dalga geçmeme yardımcı olabilir.

Bir kaynağa giden herhangi bir bağlantı yardımcı olabilir.

cevap

8

java.io.File, Groovy kodunda Spock ile alay edebilirsiniz.

İşte bunu nasıl bir örnek:

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() 
    } 
} 

fikri beklenen parametreleri olan bir java.io.File yapıcı çağrı beklenti gelen dosyanın Spock alay döndürmektir.

+0

Mock on jdk api'yi kullanabileceğinizi bilmiyordum. Ne aradığımı değil ama yardımcı oldu. Teşekkürler! – Akolopez

+1

Belirli bir veya tüm örneklerle alay etmek isteyip istemediğinize bağlı olarak, ya bir * veya * global casus kullanırsınız. –

+1

"useObjenesis: true" ile ilgili merakımı (ve cehaleti) paylaşanlar için. Web sitesine göre, [Objenesis] (http://objenesis.org/) yapıcı parametrelerini geçmeden nesneler oluşturmayı sağlar. ([Dosya] için tüm kurucuların (https://docs.oracle.com/javase/7/docs/api/java/io/File.html) parametreler gerektirdiğini unutmayın.) –