com.github.stefanofornari:xtest

A TDD framework to make coding drven by specifications easier


License
AGPL-3.0

Documentation

xtest
=====

Collection of testing utilities

LICENSE
=======

Copyright (C) 2013 Stefano Fornari

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License version 3 as published by
the Free Software Foundation with the addition of the following permission
added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
WORK IN WHICH THE COPYRIGHT IS OWNED BY Stefano Fornari, Stefano Fornari
DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.

You should have received a copy of the GNU Affero General Public License
along with this program; if not, see http://www.gnu.org/licenses or write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA.

RELEASE NOTES
=============

1. v3.x breaks backward compatibility to address the new mechanisms of
   preventing the use of internal APIs introduced with JDK9.
   This involved the following xtest packages

   - ste.xtest.awt
   - ste.xtest.net

   If you need to use those packages without changes, use v2.x and JDK8

   The following classes have been removed and will not be longer supported:

   - ste.xtest.reflect.CodeInjector

2. To be able to easily using URL stubbing in other projects all relevan
   classes have been taken from JDK's source code and relocated under
   the package ste.xtest.net. In this way the stubs will not use any more
   internal classes but normal packages.

3. Note that Java 17 deprecated SecurityManager and setting a SM into a JVM.
   Trying to replace the SM throws the exception

   java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release

   This impacts ste.xtest.cli.BugFreeCLI, which uses such functionality behind
   the scene to determine the exist status of the process. This indeed means
   that if BugFreeCLI is used with Java 18 or earlier, test will fail with above
   exception.
   The only workaround available at the moment is to set -Djava.security.manager=allow
   when running the tests:

    <project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.5.0</version>
            <configuration>
                <!--
                  java.security.manager must be set on the command line of
                  the forked VM, it cannot be set after the VM has been started
                -->
                <argLine>-Djava.security.manager=allow</argLine>
            </configuration>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>

4. ste.xtest v3.8.0 introduced a new working stub for JDBC based on the open
   source project Acolyte (see CREDITS).

CREDITS
=======

Acolyte: xtest 3.8.0 and earlier includes source code from the Acolyte project
(https://github.com/cchantep/acolyte). The source code has been included instead
of using directly the original package because the Acolyte project seems not to
be active any more and some improvements were required.