2015-01-12 87 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' 
    } 

}