Generate Test Case Plugin

This page is outdated and no longer receives updates!

The Generate Test Case Plugin aides java developers with writing @should style test units.

This project 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(instance.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.

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

Eclipse Version

What it Does

  • Adds a menu item to the "right click" context menu on all .java files called Generate Test Cases

    • A popup menu appears that allows you to choose which of the @should methods you want to generate

    • If a similar ___Test class name exists, a new @Test method is added to the end of it

    • If a similar ___Test class name does not exist, a new test class is added in the /test folder

How to Install the Plugin Into Eclipse

  • Go to Help → Software Updates → Find / Install

  • Choose "Search for new features to install"

  • Click "Add new Remote Site"

  • Enter a name

  • Enter http://resources.openmrs.org/eclipse/update/ as the URL

  • Now choose that remote site and click "Finish"

How to Generate Test Cases

  1. Set up the source and test directories:

    • Right click on your project root and choose properties

    • Next to "Generate Test Cases", set up the pairs: "src/api -> test/api" and "src/web -> test/web"

  2. Open a java file and add an "@should not return a null object" annotation to a method

  3. Right click in the java file and choose "generate test cases"

  4. Fill in the new unit test method

How to Generate a Test Coverage Report

  1. Open the package explorer

  2. Right click on src/api and choose "Generate Test Coverage Report"

  3. In the menu, go to Window -> Show View -> Other

  4. Open the view for "Other --> Test Report"

Things to do

This is a a list of desired features and bugs to be worked on.

You can download the last svn version of the plugin for eclipse to test some features currently not published through the eclipse update site: org.openmrs.generatetestcases

IntelliJ IDEA Version

You can download the plugin "GenerateTestCases" directly from the IDE. Go to Settings > Plugin enter "GenerateTestCases" hit enter. If not found, there should appear a button saying "Search in Repositories" which you should click. Then select the plugin and press Install.

An introduction to the plugin is here: https://plugins.jetbrains.com/idea/plugin/5847-generatetestcases

There you can see a Youtube link with a ten minute tutorial to use the plugin.