Light weight BDD Pattern
Project description
# Light weight BDD Pattern
## Installation
* `pip install apple-mango`
## Goal
* Easy to Use
* Compatible with Python unittest
* Compatible with existing test code
* Support Python3
## Next Step
* Register to pypi
* Add CI
* Support pytest
## Usage
* Define regular test class
* Define regular test method with `@mango.given()`
* Define inner `when` method with `@mango.when()`
* Define inner `then` method with `@mango.then()`
* Run python test: `python -m unittest test_file.py`
* No need to call inner `when` and `then` method becuase `given(), when(), then()` decorators will take care of it
### Example
```python
# test_exampel.py
class MangoUseCase(TestCase):
def setUp(self):
self.user = 'jun'
@mango.given('I am logged-in user')
def test_profile(self):
self.given.user_profile = 'my_profile'
self.given.user_photo = 'my_photo'
self.given.notifications_count = 3
self.given.unread_notifications_count = 1
@mango.when('I click profile')
def when_click_profile():
print('click')
@mango.then('I see profile')
def then_profile():
self.assertEqual(self.given.user_profile, 'my_profile')
@mango.then('I see my photo')
def then_photo():
self.assertEqual(self.given.user_photo, 'my_photo')
@mango.when('I click notification')
def when_click_notification():
print('click')
@mango.then('I see 3 notifications')
def then_notification():
self.assertEqual(self.given.notifications_count, 3)
@mango.then('I see 1 unread notification')
def then_unread_notification():
self.assertEqual(self.given.unread_notifications_count, 1)
@mango.given('I am logged-out user')
def test_auth(self):
self.given.status_code = 401
@mango.when('I access profile by url')
def when_access_profile():
print('access profile')
@mango.then('I see 401 error')
def then_error():
self.assertEqual(self.given.status_code, 401)
```
### Run Example
```python
python -m unittest test_example.py
```
## Contributing
### Run Test
```python
python -m unittest tests/test_mango.py
```
## Installation
* `pip install apple-mango`
## Goal
* Easy to Use
* Compatible with Python unittest
* Compatible with existing test code
* Support Python3
## Next Step
* Register to pypi
* Add CI
* Support pytest
## Usage
* Define regular test class
* Define regular test method with `@mango.given()`
* Define inner `when` method with `@mango.when()`
* Define inner `then` method with `@mango.then()`
* Run python test: `python -m unittest test_file.py`
* No need to call inner `when` and `then` method becuase `given(), when(), then()` decorators will take care of it
### Example
```python
# test_exampel.py
class MangoUseCase(TestCase):
def setUp(self):
self.user = 'jun'
@mango.given('I am logged-in user')
def test_profile(self):
self.given.user_profile = 'my_profile'
self.given.user_photo = 'my_photo'
self.given.notifications_count = 3
self.given.unread_notifications_count = 1
@mango.when('I click profile')
def when_click_profile():
print('click')
@mango.then('I see profile')
def then_profile():
self.assertEqual(self.given.user_profile, 'my_profile')
@mango.then('I see my photo')
def then_photo():
self.assertEqual(self.given.user_photo, 'my_photo')
@mango.when('I click notification')
def when_click_notification():
print('click')
@mango.then('I see 3 notifications')
def then_notification():
self.assertEqual(self.given.notifications_count, 3)
@mango.then('I see 1 unread notification')
def then_unread_notification():
self.assertEqual(self.given.unread_notifications_count, 1)
@mango.given('I am logged-out user')
def test_auth(self):
self.given.status_code = 401
@mango.when('I access profile by url')
def when_access_profile():
print('access profile')
@mango.then('I see 401 error')
def then_error():
self.assertEqual(self.given.status_code, 401)
```
### Run Example
```python
python -m unittest test_example.py
```
## Contributing
### Run Test
```python
python -m unittest tests/test_mango.py
```
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file apple_mango-0.2-py3-none-any.whl
.
File metadata
- Download URL: apple_mango-0.2-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad3b069b9e7afb1d8b18d7dcb7e6847b4aa435c67574f0195a95455248192f1b |
|
MD5 | f5503ca4b792254fbfbea498bb8ecc43 |
|
BLAKE2b-256 | 0f00541ab2ffdf4e67933b7ad984ff0d7784fd05f547d70317b7f07fd9fe9f9d |