# Unit testing Custom Tasks in Java

**URL:** <https://discuss.gradle.org/t/unit-testing-custom-tasks-in-java/23952>\
**Category:** Help/Discuss\
**Tags:** plugins\
**Created:** [August 31, 2017, 9:30pm UTC](https://discuss.gradle.org/t/unit-testing-custom-tasks-in-java/23952 "2017-08-31T21:30:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pborgen](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/pborgen/32/6428_2.png) [@pborgen](https://discuss.gradle.org/u/pborgen)\
**Post date:** [August 31, 2017, 9:30pm UTC](https://discuss.gradle.org/t/unit-testing-custom-tasks-in-java/23952/1 "2017-08-31T21:30:53Z")

</div>

I am writing some custom tasks in Java. I am having a hard time finding any code examples. All the ones I have found are in groovy. I wrote a junit test and I am trying to figure out how to call my custom task. Any suggestions?

Project project = ProjectBuilder.builder().build();  
Task task = project.task(“FileHeaderVerify”, ???);

---

<div class="post-metadata">

**Author:** ![sterling](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/sterling/32/5395_2.png) [@sterling](https://discuss.gradle.org/u/sterling)\
**Post date:** [September 1, 2017, 12:13am UTC](https://discuss.gradle.org/t/unit-testing-custom-tasks-in-java/23952/2 "2017-09-01T00:13:58Z")

</div>

I wouldn’t use ProjectBuilder for testing that your task works. It doesn’t simulate enough of a real Gradle runtime to make it work.

Take a look at this guide (specifically the functional test section): [https://guides.gradle.org/testing-gradle-plugins/#functional-tests](https://guides.gradle.org/testing-gradle-plugins/#functional-tests)

I wouldn’t personally write functional tests in Java, but there’s an example bundled in the Gradle distribution:

> <https://github.com/gradle/gradle/blob/master/subprojects/docs/src/samples/testKit/gradleRunner/junitQuickstart/src/test/java/org/gradle/sample/BuildLogicFunctionalTest.java>
