browncoat-ninjas / nimoy

A testing and specification framework for Python 3
https://browncoat-ninjas.github.io/nimoy
Apache License 2.0
105 stars 12 forks source link
hacktoberfest python specification tdd test-framework testing unittest

= Nimoy

A testing and specification framework for Python 3, heavily inspired by the amazing http://spockframework.org/[Spock Framework].

image:https://badge.fury.io/py/nimoy-framework.svg["PyPI version", link="https://badge.fury.io/py/nimoy-framework"] image:https://circleci.com/gh/browncoat-ninjas/nimoy/tree/develop.svg?style=svg["CircleCI", link="https://circleci.com/gh/browncoat-ninjas/nimoy/tree/develop"]

== Better Python Testing

Powerful Python DDT (Domain Driven Testing) made easy with Nimoy's DSL:

from nimoy.specification import Specification

class MySpec(Specification):

    def my_feature_method(self):
        with given:
            a = value_of_a
            b = value_of_b

        with expect:
            (a * b) == expected_value

        with where:
            value_of_a | value_of_b | expected_value
            1          | 10         | 10
            2          | 20         | 40

== Installation

=== Python 3.8 or earlier

pip install nimoy-framework==1.0.2

=== Python 3.9 or later

pip install nimoy-framework

== Why?

The http://spockframework.org/[Spock Framework] has set a new standard as to what testing frameworks should be like - beautiful, expressive, pragmatic and fun.

While unittest, https://github.com/pytest-dev/pytest[pytest] and https://github.com/nose-devs/nose2[nose2] are great, there's still room for improvement.

The aim of this project is to port Spock to Python while maintaining the original vision as much as possible.

== Features

== Learn More

== License

Apache License 2.0

== In memory of Leonard Nimoy 1931-2015