Git Product home page Git Product logo

jedunit's Introduction

JEdUnit

JEdUnit is a unit testing framework with a special focus on educational aspects. It strives to simplify automatic evaluation of (small) Java programming assignments using Moodle and VPL.

We developed this framework mainly for our purposes in programming classes at the Lübeck University of Applied Sciences. However, this framework might be helpful for other programming instructors, and that is why this framework is provided as open source.

Usage and features

We assume the reader to be familiar with Java in general. Furthermore, we recommend to study at least the following VPL related documentation:

According to our experiences students tend to make use of the following kind of "cheats".

  • Overfitting (e.g. to map simply the test values to expected results, outside the scope of the test values the solution is useless)
  • Problem evasion (e.g. to solve a problem using loops instead of to solve it recursively)
  • Redirection (e.g. to call the reference solution instead of implement it on their own)
  • Injection (e.g. to write System.out.println("Grade :=>> 100"); System.exit(0); to get full points and prevent VPL to check the submission)

So, and in addition to "normal" unit testing frameworks, JEdUnit provides several addons to handle educational specifics that are hardly covered by current testing frameworks.

  • Checkstyle integration to foster "readable" code (OK, that is basic stuff)
  • Randomized test case generation to handle overfitting cheats.
  • Parser integration and an easy to use selector model (comparable to CSS selectors for a DOM-tree).
  • Predefined code inspections that can be switched on/off depending on assignment specifics (object-orientation, recursion, functional programming with lambdas, best practice collection handling, ...)
  • and more ...

Learn how to use it

To make use of this framework, the following workflow is recommended to set up a basic configuration for a new programming assignment. First of all, initialize a directory on your local machine and run:

curl -s https://raw.githubusercontent.com/nkratzke/JEdUnit/working/init.sh | sh

Then we recommend to study the Wiki.

jedunit's People

Contributors

nkratzke avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.