$ pip install lettuce
$ pip install nose
calculator.py:
class Calculator(object):
def add(self, x, y):
number_types = (int, long, float, complex)
if isinstance(x, number_types) and isinstance(y, number_types):
return x + y
else:
raise ValueError
Feature: As a writer for NetTuts I wish to demonstrate How easy writing Acceptance Tests In Python really is. Background: Given I am using the calculator Scenario: Calculate 2 plus 2 on our calculator Given I input "2" add "2" Then I should see "4"
from lettuce import *
from nose.tools import assert_equals
from app.calculator import Calculator
@step(u'I am using the calculator')
def select_calc(step):
print ('Attempting to use calculator...')
world.calc = Calculator()
@step(u'I input "([^"]*)" add "([^"]*)"')
def given_i_input_group1_add_group1(step, x, y):
world.result = world.calc.add(int(x), int(y))
@step(u'I should see "([^"]+)"')
def result(step, expected_result):
actual_result = world.result
assert_equals(int(expected_result), actual_result)
lettuce test/features/calculator.feature: $ lettuce tests/features/calculator.feature Feature: As a writer for NetTuts # tests/features/calculator.feature:1 I wish to demonstrate # tests/features/calculator.feature:2 How easy writing Acceptance Tests # tests/features/calculator.feature:3 In Python really is. # tests/features/calculator.feature:4 Background: Given I am using the calculator # tests/features/steps.py:6 Given I am using the calculator # tests/features/steps.py:6 Scenario: Calculate 2 plus 2 on our calculator # tests/features/calculator.feature:9 Given I input "2" add "2" # tests/features/steps.py:11 Then I should see "4" # tests/features/steps.py:16 1 feature (1 passed) 1 scenario (1 passed) 2 steps (2 passed)
class Calculator(object):
def add(self, x, y):
number_types = (int, long, float, complex)
if isinstance(x, number_types) and isinstance(y, number_types):
return x - y
else:
raise ValueError
$ lettuce tests/features/calculator.feature
Feature: As a writer for NetTuts # tests/features/calculator.feature:1
I wish to demonstrate # tests/features/calculator.feature:2
How easy writing Acceptance Tests # tests/features/calculator.feature:3
In Python really is. # tests/features/calculator.feature:4
Background:
Given I am using the calculator # tests/features/steps.py:6
Given I am using the calculator # tests/features/steps.py:6
Scenario: Calculate 2 plus 2 on our calculator # tests/features/calculator.feature:9
Given I input "2" add "2" # tests/features/steps.py:11
Then I should see "4" # tests/features/steps.py:16
Traceback (most recent call last):
File "/Users/user/.virtualenvs/bdd-in-python/lib/python2.7/site-packages/lettuce/core.py", line 144, in __call__
ret = self.function(self.step, *args, **kw)
File "/Users/user/Documents/Articles - NetTuts/BDD_in_Python/tests/features/steps.py", line 18, in result
assert_equals(int(expected_result), actual_result)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 515, in assertEqual
assertion_func(first, second, msg=msg)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 508, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: 4 != 0
1 feature (0 passed)
1 scenario (0 passed)
2 steps (1 failed, 1 passed)
List of failed scenarios:
Scenario: Calculate 2 plus 2 on our calculator # tests/features/calculator.feature:9
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有