Differs from mainstream BDD by extended stages set - given-when-then-should
- @when
- may raise ScenarioPreconditionsNotMet to skip tests
- may return list of Behaviour objects to start subtests
Main purpose is to experiment with testing of tree structures (DOM for example) with tree of tests
An example:
from bdd import Behaviour class TestSub(Behaviour): @given def number(self, n): return n @should def be_equal_to_5(self, n): return n==5 class TestOfTest(Behaviour): @given def some_string(self, a): return a @when def string_is_testArg(self, a): assert a == 'testarg' @should def len_string_equal_to_7(self, a): return len(a) == 7 @when def all_is_good(self, a): return TestSub(5), TestSub(6) @should def be_equal_ToTestarg(self, a): return a == 'testarg' @should def len_string_equal_to_7a(self, a): return len(a) == 7
- Integrate with unittest.TestCase test run
- Integrate with TestCase result formatter
- Enable TestCase subclassing with Behaviour.
Smth like:
from bdd import TestCaseBehaviour from django.test import LiveServerTestCase class LivePageTestCase(TestCaseBehaviour(LiveServerTestCase)): pass