ScalaCheck is a powerful tool for automatic unit testing of Scala and Java programs. It features automatic test case generation and minimization of failing test cases. ScalaCheck started out as a Scala port of the Haskell library QuickCheck, and has since evolved and been extended with features not found in Haskell QuickCheck.
ServiceFixture is a fixture library built on top of FIT/FitNesse which enables FitNesse to be the integration test and software collaboration platform for service oriented and distributed systems. These systems usually expose stateless services, such as web service (SOAP or REST), ejb and POJO etc, to its internal or external clients, and complex domain objects are always involved in the service interfaces.
It is difficult to leverage FitNesse for these systems due to the fact that it is not trivial to represent complex domain objects in FIT test table, and hence it would require constant fixture development efforts to support the integration test. ServiceFixture is designed to fill this gap.
ServiceFixture uses expression language to represent domain objects, verify and display the response in FIT test table. Every ServiceFixture test is basically a method invocation to a stateless service. The test starts with setting up the input data, then invoking the service operation, and then checking the response.
Because the ServiceFixture is very generic, to setup ServiceFixture and FitNesse for a project, you only need to write a ServiceFixture extension to encapsulate the invocation logic once, which is pretty trivial. No more fixture development is needed after that. It also provides template creator integrated with FitNesse to make tester's life a lot easier too.
ServiceFixture also provides database service fixtures(SelectFixture and UpdateFixture) which can be used to access databases directly from FitNesse test scripts. See Tutorial for more details.
The Grinder is a JavaTM load testing framework that makes it easy to run a distributed test using many load injector machines. It is freely available under a BSD-style open-source license.
The latest news, downloads, and mailing list archives can be found on SourceForge.net.
Key features
* Generic Approach Load test anything that has a Java API. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols.
* Flexible Scripting Tests are written in the powerful Jython scripting language.
* Distributed Framework A graphical console allows multiple load injectors to be monitored and controlled, and provides centralised script editing and distribution.
* Mature HTTP Support Automatic management of client connections and cookies. SSL. Proxy aware. Connection throttling. Sophisticated record and replay of the interaction between a browser and a web site.
See the longer features list for further details.
p-unit
An open source framework for unit test and performance benchmark, which was initiated by Andrew Zhang, under Apache License v2.0. p-unit supports to run the same tests with single thread or multi-threads, tracks memory and time consumption, and generates the result in the form of plain text, image or pdf file.
AtUnit minimizes boilerplate code in unit tests and guides test development by enforcing good practices.
* mark exactly one field with @Unit to indicate the object under test.
* mark fields with @Mock or @Stub to obtain mock objects
* inject your tests, and your test subjects, using your favorite IoC container
Mock Objects Integration
AtUnit integrates with JMock or EasyMock to provide mock objects:
* obtain a JMock context simply by declaring a field
* annotate fields with @Mock to obtain JMock or EasyMock mock objects
* annotate fields with @Stub to obtain a JMock or EasyMock stub object
... or you can use your own mock objects plug-in with two easy steps:
* implement the MockFramework interface
* annotate your tests with @MockFrameworkClass(MyMockFramework.class)
Container Integration
AtUnit integrates with Guice or Spring to take all of the work out of dependency-injected tests.
With Guice:
* never see the Injector, never write bootstrapping boilerplate!
* @Inject test class fields without even defining a Module
* declaratively obtain mock objects with @Inject @Mock
* if you need more binding flexibility, simply have your test class implement Module
With Spring:
* annotate fields with @Bean to get them from the Spring context
* fields annotated with @Bean which do not appear in your Spring context are added to it automatically! (This includes @Mock and @Stub fields.)
* AtUnit looks for a Spring XML file with the same name as your test, or you can specify the location yourself with @Context("filename")
* Most of the time, you don't even need a Spring XML file!
You can easily plug in other containers in two steps:
* implement the Container interface
* annotate your tests with @ContainerClass(MyContainer.class)
ClassMock is a framework that helps the creation of unit tests for components that use reflection or annotations. In this kind of classes, the behavior is dependent of the class structure. This way, each test case usually works with a different class created specifically for the test. With ClassMock is possible to define and generate classes in runtime, allowing a better test readability and logic sharing between tests.
jDiffChaser is a GUI comparison tool that automates difference detection
between same screens of different versions. You can easily record scenarios
(optionally define zones of the screens to ignore during comparisons) and play suites
of them on two different versions of the same Java Swing application: differences are
then listed in a web page report.