2012-05-24 7 views
6

Trước Grails 2.0.X có thể giả lập cấu hình bằng phương pháp mockConfig do lớp cơ sở cung cấp để kiểm tra mở rộng. Tuy nhiên, trong Grails 2.0.X, các lớp thử nghiệm sử dụng mixin @TestFor thay vì mở rộng một lớp cơ sở.cấu hình giả trong các thử nghiệm của Grails

Hỗn hợp này dường như không cung cấp bất kỳ thứ gì tương đương với phương pháp mockConfig, vì vậy tôi không thể tìm ra cách để thử các giá trị trong Config.groovy.

Trả lời

6

Bạn có thể truy cập grailsApplication.config vì vậy bạn có thể sửa đổi những giá trị nhiều như bạn cần, vì vậy bạn có thể làm

grailsApplication.config.some.config.setting = 'foo' 
0

Dường như mockConfig() không còn tồn tại trong Grails 2.x. làm thế nào về điều này:

def mockConfig = new ConfigObject() 
    mockConfig.some.config.setting = "foo" 

    def myService = new MyService() 
    myService.grailsApplication = [config: mockConfig] 
1

Có vẻ như có một đối tượng config đã có trong phạm vi trong thử nghiệm Grails 2.x mới. Vì vậy, nó đủ để nói

config.some.config.setting = 'foo' 

mà sau đó sẽ có thể truy cập được từ đối tượng @TestFor đang được thử nghiệm.

Nếu bạn cần tạo đối tượng theo cách thủ công, thì cũng có một đối tượng grailsApplication trong phạm vi trong các thử nghiệm - đối tượng config thuộc về. Vì vậy, đây nên làm việc -

config.some.config.setting = 'foo' 
def myService = new MyService(grailsApplication:grailsApplication) 
4

tôi đang làm nó theo cách này (trong trường hợp khi tôi đang thử nghiệm một dịch vụ):

service.grailsApplication.config.mysetting = 'my value' 
def result = service.myMethod() 
// check results 

Không mocking khác theo yêu cầu.