Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Development/Testing/StrawManProposal

< EclipseLink‎ | Development‎ | Testing
Revision as of 14:29, 22 November 2007 by Michael.norman.oracle.com (Talk | contribs) ([http://en.wikipedia.org/wiki/Hollywood_Principle The Hollywood Principle])

From the EclipseLink DevMeeting 071017, create a straw-man proposal for a new consolidated testing framework

New Testing Framework

  • based on JUnit4 - Why?
    • JUnit3 is at end-of-life
    • Eclipse IDE has built-in support for JUnit4 tests
    • while various testing frameworks have been extended, JUnit4 is extensible by design

Looking at requirements from MOXy/SDO/DBWS/JPA, this is what we've got so far ...

The Hollywood Principle

Don't call us, we'll call you

The existing tests have code that is strongly coupled between setting up resources and the testing code. The NTF instead injects the resource into a tagged variable. Setting up the context for the resource is done in a separate class with its own requirements for composition/aggregation/inheritance.

// javase imports
import java.util.Properties;

// JUnit imports
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

// ntf imports
import org.eclipse.persistence.ntf.TestContext;
import org.eclipse.persistence.ntf.TestContextRunner;
import org.eclipse.persistence.ntf.TestProperties;
import org.eclipse.persistence.ntf.Context;

@RunWith(TestContextRunner.class)
public class ASetOfSimpleTests {

    @TestProperties public static Properties properties;
    @TestContext(tag="context") public static Context<Object> context;

There are two different things being injected by the TestContextRunner:

  1. Properties
    • found in the ntf.xml file in the user's home directory
      • the name and location of the ntf.xml file can be altered by the Java System properties -Dntf.file and -Dntf.dir
    • Java System properties from the command line
  2. User-defined context object
    • an external factory constructs an object that implements Context, providing a simple API to look up objects by name

Back to the top