【三】behave实例二

目标:在编写测试时使用自然语言,下面我们用一个简单的实例来展开:

1.编写Feature Test

#文件:features/tutorial_natual_language.feature

Feature: 购买化妆品

  为了买到合适的化妆品
  作为一个化妆小能手
  我想找几个女生来测试下
  基于不同肤质
  
  Scenario: 油皮
    Given 化妆品我有lanKou
    When 女生是girlB
    Then 脸的感觉应该是自然

  Scenario: 干皮
    Given 化妆品我有IPSA
    When 女生是girlA
    Then 脸的感觉应该是服帖
View Code

2.提供模型

#file:features/steps/step_tutorial02.py

class Cosmetics(object):
    """
    化妆品的种类
    """
    def __init__(self, with_cosmetics_level=None):
        self.with_cosmetics_level = with_cosmetics_level
        self.girl = None

    def Fit(self):
        """
        化妆品的种类判断和女孩肤质测验
        """
        assert self.with_cosmetics_level is not None
        assert self.girl is not None
        if self.girl == "girlB":
            return "自然"
        if "IPSA" in self.with_cosmetics_level:
            return "服帖"
        else:
            return "自然"
View Code

3.提供自动化测试

#file:features/steps/step_tutorial02.py

# encoding:utf-8
# date:2019/11/7 16:54
# @Author:sunny

from behave   import given, when, then
from hamcrest import assert_that, equal_to, is_not

@given('化妆品我有{cosmetics_level}')
def step_the_cosmetics_has_a(context, cosmetics_level):
    context.cosmetics = Cosmetics(cosmetics_level)

@when('女生是{girl}')
def step_attacked_by(context, girl):
    context.cosmetics.girl = girl

@then('脸的感觉应该是{feel}')
def step_the_ninja_should(context, feel):
    assert_that(feel, equal_to(context.cosmetics.Fit()))
View Code

运行Feature Test结果:

E:\exercise\producer2-test>behave
Feature: 购买化妆品 # features/tutorial02_natural_language.feature:1
  为了买到合适的化妆品
  作为一个化妆小能手
  我想找几个女生来测试下
  基于不同肤质
  Scenario: 油皮        # features/tutorial02_natural_language.feature:8
    Given 化妆品我有lanKou # features/steps/step_tutorial02.py:32
    When 女生是girlB     # features/steps/step_tutorial02.py:36
    Then 脸的感觉应该是自然    # features/steps/step_tutorial02.py:40

  Scenario: 干皮      # features/tutorial02_natural_language.feature:13
    Given 化妆品我有IPSA # features/steps/step_tutorial02.py:32
    When 女生是girlA   # features/steps/step_tutorial02.py:36
    Then 脸的感觉应该是服帖  # features/steps/step_tutorial02.py:40

1 feature passed, 0 failed, 0 skipped
2 scenarios passed, 0 failed, 0 skipped
6 steps passed, 0 failed, 0 skipped, 0 undefined
Took 0m0.003s

E:\exercise\producer2-test>
View Code

以上结果可以看出,运行通过。

posted @ 2019-12-06 09:57  做一只热爱生活的小透明  阅读(333)  评论(0)    收藏  举报