groovy如何测试config.groovy中的环境存在

时间:2015-10-20 22:20:16

标签: groovy

测试树结构存在的最佳实践?例如,测试配置文件中的环境存在。下面的当前工作示例。尝试.hasProperty,但无法在像config这样的树结构中获得正确的对象引用。

def config = new ConfigSlurper(myenvironment).parse(new File('cfg.groovy').toURL())
def results = config.admin.server
 try {
    assert results.size != 0
    } catch...

cfg.groovy

environments {
    dev01 {
        admin {
            server = 'http://'
            port = '1'
        }
    }
    test {
        admin {
            server = 'http://'
            port = '1'
        }
    }
}   

1 个答案:

答案 0 :(得分:1)

我不知道是否有更好的方法,但您可以检查为传递的环境生成的配置对象是否为空:

def environments = '''
environments {
    dev01 {
        admin {
            server = 'http://'
            port = '1'
        }
    }
    test {
        admin {
            server = 'http://'
            port = '1'
        }
    }
}   
'''

def noExists = new ConfigSlurper('noExistEnv').parse(environments)
assert !noExists.isEmpty()

由于noExistEnv不存在,因此执行显示:

Assertion failed: 

assert !noExists.isEmpty()
       ||        |
       |[:]      true
       false

尝试使用现有环境都能正常工作:

def environments = '''
environments {
    dev01 {
        admin {
            server = 'http://'
            port = '1'
        }
    }
    test {
        admin {
            server = 'http://'
            port = '1'
        }
    }
}   
'''

def testCfg = new ConfigSlurper('test').parse(environments)
def result = testCfg.admin.server
// check that string is not empty
assert !result.isEmpty()
println result // prints "http://"

希望它有所帮助,