Lettuce:內(nèi)置Django步驟

Lettuce具有若干Django內(nèi)置步驟,簡化定制器的創(chuàng)建夺艰。

創(chuàng)建定制器數(shù)據(jù)

Lettuce可以自動(dòng)對你可用的Django模型創(chuàng)建定制器數(shù)據(jù)紧索,例如

Background:
    Given I have options in the database:
        | name    | value |
        | Lettuce | Rocks |

能發(fā)現(xiàn)一個(gè)名字叫options的模型咖气。它將使用表中指定的參數(shù)創(chuàng)建該模型的對象(name=Lettuce, value=Rocks)。
還可以這樣指定關(guān)系信息汗洒。假設(shè)具有外鍵user和字段avatar的模型Profile:

Background:
    Given user with username "harvey" has profile in the database:
        | avatar  |
        | cat.jpg |

要?jiǎng)?chuàng)建多對多關(guān)系议纯,假設(shè)User屬于多個(gè)Group對象:

Background:
    Given user with username "harvey" is linked to groups in the database:
        | name |
        | Cats |

要?jiǎng)?chuàng)建多對多關(guān)系,這兩個(gè)模型必須在鏈接之前存在溢谤。
大部分常見的數(shù)據(jù)可以被解析瞻凤,即真/假、數(shù)字世杀、字符串和日期的形式2013-10-30阀参。

注冊自己的模型構(gòu)造器

對于更復(fù)雜的模型,處理和分析數(shù)據(jù)瞻坝,你可以使用creates_models裝飾自己寫的創(chuàng)建步驟蛛壳。

from lettuce.django.steps.models import (creates_models,
                                         reset_sequence,
                                         hashes_data)

@creates_models(Note)
def create_note(step):
    data = hashes_data(step)
    for row in data:
        # convert the author into a user object
        row['author'] = get_user(row['author'])
        Note.objects.create(**row)

    reset_sequence(Note)

測試模型

兩個(gè)步驟來測試模型。

Then features should be present in the database:
    | name    | value |
    | Lettuce | Rocks |
And there should be 1 feature in the database

你也可以通過前綴@的屬性名稱測試非數(shù)據(jù)庫模型屬性所刀。在從數(shù)據(jù)庫中選擇記錄之后測試非數(shù)據(jù)庫屬性衙荐。

Then features should be present in the database:
    | name    | value | @language |
    | Lettuce | Rocks | Python    |

注冊自己的模型測試

對于更復(fù)雜的測試,處理和分析數(shù)據(jù)浮创,你可以使用checks_existence裝飾你自己的步驟忧吟。

測試電子郵件

有6個(gè)步驟,允許你對發(fā)送電子郵件進(jìn)行比較全面的測試斩披,僅需要你使用Django默認(rèn)django.core.mail功能溜族。
檢查發(fā)送的郵件數(shù)量:

Then I have sent 1 email

還有一個(gè)更易讀的步驟,用于檢查沒有發(fā)送郵件:

Then I have not sent any emails

檢查電子郵件正文中是否包含以下多行字符串:

Then I have sent an email with the following in the body:
    """
    Lettuce is a BDD tool for python, 100% inspired on cucumber.
    """

檢查電子郵件的一部分(主體垦沉、主體煌抒、from_email,乡话,BCC摧玫,CC)是否包含給定文本:

Then I have sent an email with "Lettuce" in the body

你應(yīng)該一直測試你的功能的失敗案例耳奕。因此绑青,有步驟確保發(fā)送電子郵件按預(yù)期失敗诬像。這將導(dǎo)致smtpexception總是被提出:

Given sending email does not work

有些測試點(diǎn),你可能會(huì)想清除你以前所有的有變化的發(fā)件箱闸婴。清除你的電子郵件坏挠,并重置之前sending email does not work步驟造成的任何破壞,可以使用:

Given I clear my email outbox

希望在每次測試之后邪乍,運(yùn)行清理降狠。要做到這一點(diǎn),只要在你terrain.py添加:

::

from lettuce import after, before from lettuce.django.steps.mail import mail_clear

@before.each_background def reset_email(lettuce_object):

    mail_clear(lettuce_object)

settings.py變量

LETTUCE_APPS–測試默認(rèn)應(yīng)用程序
LETTUCE_USE_TEST_DATABASE–使用測試數(shù)據(jù)庫代替實(shí)時(shí)數(shù)據(jù)庫庇楞。等值t標(biāo)志榜配。

其他參考變量

SOUTH_TESTS_MIGRATE – 使用south遷移應(yīng)用到測試數(shù)據(jù)庫


上一篇:Lettuce: Language Support
下一篇:Lettuce: Use nose for pretty assertions

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吕晌,隨后出現(xiàn)的幾起案子蛋褥,更是在濱河造成了極大的恐慌,老刑警劉巖睛驳,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烙心,死亡現(xiàn)場離奇詭異,居然都是意外死亡乏沸,警方通過查閱死者的電腦和手機(jī)淫茵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹬跃,“玉大人匙瘪,你說我怎么就攤上這事〉海” “怎么了辆苔?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扼劈。 經(jīng)常有香客問我驻啤,道長,這世上最難降的妖魔是什么荐吵? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任骑冗,我火速辦了婚禮,結(jié)果婚禮上先煎,老公的妹妹穿的比我還像新娘贼涩。我一直安慰自己,他們只是感情好薯蝎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布遥倦。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袒哥。 梳的紋絲不亂的頭發(fā)上缩筛,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音堡称,去河邊找鬼瞎抛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛却紧,可吹牛的內(nèi)容都是我干的桐臊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼晓殊,長吁一口氣:“原來是場噩夢啊……” “哼断凶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起巫俺,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤懒浮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后识藤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砚著,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年痴昧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稽穆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赶撰,死狀恐怖舌镶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豪娜,我是刑警寧澤餐胀,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站瘤载,受9級特大地震影響否灾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸣奔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一墨技、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挎狸,春花似錦扣汪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春茅主,著一層夾襖步出監(jiān)牢的瞬間舞痰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工暗膜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鞭衩。 一個(gè)月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓学搜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親论衍。 傳聞我的和親對象是個(gè)殘疾皇子瑞佩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容