A nose plugin that supports writing describe/it style unit tests with nested contexts
Project description
Describe-it is a nose plugin that allows you to write unit tests that are more like executable examples of how a component should work than just being tests.
The other benefit is the ability to describe how a component behaves in certain contexts, where one context may build on a previously defined context by using nesting.
Installing
$ pip install describe-it
Writing
Any module that ends with ‘spec’ is considered to contain specifications/tests for describe_it.
$ vim myfirst_spec.py
…and the content:
from game import Game
from describe_it import describe, it, before_each, Fixture
@describe # This declares a test context.
def a_game():
f = Fixture() # Fixture is a hack to get around
# Python's implementation of closures.
# You can use other methods, such as
# nonlocal if you like.
@before_each # Will be called before each 'it'
def setup():
f.game = Game()
@after_each # Will be called after each 'it'
def teardown():
perform_post_test_cleanup_if_needed() # This should rarely be needed!
@it # This marks a test method.
def is_player_ones_turn():
assert f.game.current_player == 1 # describe_it doesn't come with an
# assertion lib. Pick any one you like.
@describe # This is a nested context that
def in_second_round(): # augments the context above.
@before_each # Before each 'it' method, any
def setup(): # before_each in outer contexts will
f.game.play_round() # be called first. Then this method
# will be called.
@it
def is_player_twos_turn():
assert f.game.current_player == 2
@xit # You can skip individual test methods
def skips_tests(): # by using '@xit' or '@it_skip'
assert True
@with_data([1, 2, 3], # You can parameterize tests with
[3, 4, 7]) # different combinations of inputs
def adds_numbers(term_1, term_2, expected):
assert term_1 + term_2 == expected
@xdescribe # You can skip whole contexts by
def this_context_is_marked_as_skipped(): # using '@xdescribe' or '@describe_skip'
@it
def this_test_will_be_skipped():
assert True
Running
$ nosetests --with-describe-it
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
describe_it-2.2.2.tar.gz
(5.1 kB
view details)
File details
Details for the file describe_it-2.2.2.tar.gz
.
File metadata
- Download URL: describe_it-2.2.2.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 538b684ad6e6920da35b57ae4f52cdc35e94ba7941e6b4b7d65e38972f75d336 |
|
MD5 | 8c0dd31eb9ac53705927b6ca0173effc |
|
BLAKE2b-256 | 75ca175bfd9a0de65af77cf7c197c59ea13c97bdb6c1dfb87dd856153b100dcd |