Skip to content

🍒 An Intellij Plugin that generates unit test methods with meaningful names based in described behaviours with @should tags in methods javadoc

License

Notifications You must be signed in to change notification settings

Hazem-Ben-Khalfallah/test-cherry

Repository files navigation

test-cherry

Test Cherry Plugin

This Project is based on GenerateTestCases project.

What it does?

Test Cherry Plugin aides java developers with writing @should style test units.

It aims to make it easier to make TDD with a really cool and easy approach that consist in annotating interface method with desired behaviours like this:

public interface Person {

    /**
     *
     * @return
     * @should say hello, and nothing more that that
     */
    String sayHello();
}

So with this plugin you could generate a test class for this interface like this one automatically:

import org.junit.Assert;
import org.junit.Test;

public class PersonTest {

	/**
	 * @see Person#sayHello()
	 * @verifies say hello, and nothing more that that
	 */
	@Test
	public void sayHello_shouldSayHelloAndNothingMoreThatThat() throws Exception {
		//TODO auto-generated
		Assert.fail("Not yet implemented");
	}
}

And then test your implementation code like this

    public void sayHello_shouldSayHelloAndNothingMoreThatThat() throws Exception {
        assertThat(intance.sayHello(), is("hello world"));
    }

This way you can realize that for testing this behaviour you just wrote the @should annotation in the sut (system under test) in a really descriptive way.

    /**
     *
     * @return
     * @should say hello, and nothing more that that
     */
    String sayHello();

Auto-generated the test class and test method (using the plugin) and then tested the actual expected behaviour with (hamcrest style junit test):

     assertThat(intance.sayHello(), is("hello world"));

Nothing more.

How to install

You can download the plugin "testCherry" directly from the IDE.

  • Go to Settings > Plugin enter "testCherry"
  • Hit enter
  • Select the plugin and press install.

How to use

  • Open class in editor
  • Add some test use cases using @should style annotation in method javadoc
  • Press the "Generate Test Methods" logo button in toolbar to generate test methods for each test use case. logo
  • A unit test will be generated automatically logo

How to test from source code

  • Clone repository
  • run gradlew runIde

How to build

  • run gradlew build

Change Notes

3.17

  • Support build range 242.*

3.16

  • Specify plugin display name in settings. Move plugin config under Settings > Tools

3.15

  • Remove internal and scheduled for removal API usages

3.14

  • Support build range 241.*

3.13

  • Add support for IntelliJ IDEA version 2023.3

3.12

  • Add support for IntelliJ IDEA version 2023.2

3.11

  • Add support for IntelliJ IDEA version 2023.1

3.10

  • Add support for IntelliJ IDEA version 2022.3

3.9

  • Add support for IntelliJ IDEA version 2022.2

3.8

  • Add support for IntelliJ IDEA version 2021.3

3.7

  • Add support for IntelliJ IDEA version 2021.2

3.6

  • Fixing a NullPointerException that is thrown in IntelliJ Idea
  • Fixing outOfBoundException when generating a test case
  • adding a comment tag for verifies to prevent the warnings

3.5

  • Support for snake case test cases generation

3.4

  • Add support for IntelliJ IDEA version 2021.1

3.1

  • fix multiple test method generation

3.0

  • Add support to IntelliJ IDEA version 2020.3
  • Reduce deprecated methods usage

2.0

  • Fix at should comment rename
  • Fix test lib initialization
  • Add plugin icon

1.0

  • Implement test case generation for with IntelliJ IDEA version 2020.2

Known issues

Add Test Cherry icon to main Toolbar

image

image

image

Java doc generation Workaround

When generating javadoc from code, the javadoc tool generates errors while encountering the TestCherry tags:

error: unknown tag: should error: unknown tag: verifies

This can be solved by adding the following to the javadoc commandline: -tag should:a:"Should:" -tag verifies:a:"Verifies:"

In IntelliJ, this could be done by adding it at the 'Other command line arguments' image

Credits

About

🍒 An Intellij Plugin that generates unit test methods with meaningful names based in described behaviours with @should tags in methods javadoc

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages