2015-01-12 52 views
0

我正在尝试测试通过扩展对象配置的自定义Gradle插件,该扩展对象通常会出现在build.gradle文件中。测试自定义Gradle插件:提供配置数据

例如,我的build.gradle通常会是这个样子:

{ 
    apply plugin: 'foobarConfigurator' 

    [... stuff ...] 

    foobarConfig { 
    bar = 'boop' 
    baz = 'baap' 
    bot = 'faab' 
    } 

    [... stuff ...] 
} 

在我的自定义插件类,我有一些代码,这是否在申请方法:

def config = project.extensions.create('foobarConfig', FooBarConfig) 

目前还不清楚对我来说,在JUnit测试中,我应该编写测试方法,以便可以在由ProjectBuilder类创建的Project实例中的foobarConfiguration中提供和测试不同的配置值。

任何帮助表示感谢,谢谢!

回答

1

如果你打算写你的扩展JUnit测试,你可以简单地创建一个实例,并通过编程进行配置:


class FooBarConfigTest { 

    private FooBarConfig fooBarConfig 

    @Before 
    public void before() { 
     fooBarConfig = new FooBarConfig() 
    } 

    @Test 
    public void example() { 
     fooBarConfig.bar = 'boop' 
     assertEquals("expectedIfBarIsBoop", fooBarConfig.someMethod()) 
    } 

} 

在另一方面,以测试该插件本身,你可以使用一个ProjectBuilder的并按类型查找扩展名:


class MyPluginTest { 

    private MyPlugin plugin 
    private Project project 

    @Before 
    public void before() { 
     project = ProjectBuilder.builder().build(); 
     plugin = new MyPlugin() 
     plugin.apply(project) 
    } 

    @Test 
    public void example() { 
     FooBarConfig foobarConfig = project.extensions.findByType(FooBarConfig) 
     assertNotNull(foobarConfig) 
     foobarConfig.bar = 'boop' 
    } 

}