hotblac / voicexmlriot

VoiceXML application test framework
MIT License
2 stars 1 forks source link

VoiceXMLRiot

This project is no longer actively maintained

VoiceXML application test framework.

Purpose

A simple Java based VoiceXML application test framework. VoiceXMLRiot can simulate a call, drive inputs and verify responses. Standard operations provided by the VoiceXMLRiot driver are:

Using these operations, VoiceXML application call flows can be simulated and responses verified.

Usage

See JVoiceXMLRiot JUnit Demo DemoIT.java for an example of how to initialize the Driver, drive a simple VoiceXML call flow and make assertions on the responses. This test uses JUnit but VoiceXMLRiot is test framework agnostic.

Design

VoiceXMLRiot's design is inspired by the Selenium WebDriver. Selenium is not itself a test framework. Selenium provides simple commands for fetching HTML web pages and accessing the content of the page. When used with a test framework such as JUnit, it can drive interaction with a web application and make assertions on the correctness of responses.

VoiceXMLRiot is a headless browser for VoiceXML voice applications. VoiceXMLRiot is not in itself a test framework but does allow JUnit or similar to drive a VoiceXML application and make assertions on its correctness.

VoiceXMLRiot is based on the JVoiceXML Open Source VoiceXML interpreter. VoiceXMLRiot uses JVoiceXML in embedded mode using their provided Text server. It is not necessary to run a standalone JVoiceXML Voice Browser to use VoiceXMLRiot - the interpreter / voice browser is run in-process.

Comparison with JVoiceXML VoiceXMLUnit

VoiceXMLRiot is intended to be a simpler and more flexible alternative to the VoiceXMLUnit library included with JVoiceXML. See the VoiceXMLUnit Demo for examples of how to use that.

VoiceXMLRiot differs from VoiceXMLUnit in the following ways:

Binaries

Binaries are available at the Disaster Area Maven Repo only. This repo also hosts the JVoiceXML dependencies.

To add this repo to a Maven build:

<repositories>
    <repository>
        <id>disasterarea</id>
        <name>Disaster Area</name>
        <url>https://maven.disasterarea.co.uk</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Note that snapshot dependencies must be enabled for now as the JVoiceXML driver dependency is still in snapshot.