日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用LightBDD轻松实现行为驱动开发

發(fā)布時(shí)間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用LightBDD轻松实现行为驱动开发 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

上次,我們介紹了行為驅(qū)動(dòng)開發(fā)(BDD)

它的優(yōu)點(diǎn)是可以使用純文本編寫測(cè)試用例,不需要編程經(jīng)驗(yàn)。

如果測(cè)試用例也全部是程序員寫的情況,這種方式反而存在障礙,feature使用與編寫代碼的語言完全不同的語言來編寫,維護(hù)測(cè)試需要在feature和step代碼間來回切換。

LightBDD

LightBDD是輕量級(jí)的行為驅(qū)動(dòng)開發(fā)框架。

它提供了一種替代方案,你可以直接在C#代碼中編寫B(tài)DD風(fēng)格的測(cè)試,以便開發(fā)人員可以使用IDE以簡單自然的方式維護(hù)測(cè)試。

我們以SpecFlow官方的計(jì)算器示例為例,演示使用LightBDD如何實(shí)現(xiàn)。

1. 創(chuàng)建Calculator項(xiàng)目

假設(shè),我們需要實(shí)現(xiàn)加法功能。

創(chuàng)建一個(gè)類庫,編寫如下代碼:

public?class?Calculator {public?int?FirstNumber?{?get;?set;?}public?int?SecondNumber?{?get;?set;?}public?int?Add(){return?FirstNumber?+?SecondNumber;} }

2. 創(chuàng)建XUnit測(cè)試項(xiàng)目

添加XUnit測(cè)試項(xiàng)目,引用nuget包LightBDD.XUnit2。

然后創(chuàng)建partial類,以便將feature和step代碼分開,這樣更好管理和閱讀:

[FeatureDescription("第一個(gè)feature")] public?partial?class?UnitTest1?:?FeatureFixture {//放置場景代碼 }public?partial?class?UnitTest1 {//放置步驟代碼 }

3. 編寫場景代碼

現(xiàn)在編寫我們第一個(gè)場景,使用SpecFlow是這樣的:

我們用LightBDD可以這樣寫:

[Scenario] public?void?Adding_two_numbers_should_return_total() {Runner.RunScenario(_?=>?Given_the_first_number_is(50),_?=>?And_the_second_number_is(70),_?=>?When_the_two_numbers_are_added(),_?=>?Then_the_result_should_be(120)); }

4. 編寫step代碼

可以看到,場景全部用C#代碼,因此從場景定義中自動(dòng)生成方法變得非常容易。

填充后的step代碼如下:

public?partial?class?UnitTest1 {private?readonly?Calculator?_calculator?=?new?Calculator();private?int?_result;private?void?Given_the_first_number_is(int?number){_calculator.FirstNumber?=?number;}private?void?And_the_second_number_is(int?number){_calculator.SecondNumber?=?number;}private?void?When_the_two_numbers_are_added(){_result?=?_calculator.Add();}private?void?Then_the_result_should_be(int?number){Assert.Equal(number,?_result);} }

5. 運(yùn)行測(cè)試

最后,運(yùn)行測(cè)試:

而且,如果你打開bin\Debug\net5.0\Reports文件夾,可以找到一個(gè)HTML報(bào)告,更加清晰地反映測(cè)試質(zhì)量:

結(jié)論

我們都知道,好的測(cè)試可以帶來更好、錯(cuò)誤更少的程序,實(shí)現(xiàn)更快的開發(fā)。

但是編寫出有效的測(cè)試不是一件容易的事!

LightBDD提供了一個(gè)方便的解決方案,使你的測(cè)試場景清晰,編寫起來更加輕松!

如果你覺得這篇文章對(duì)你有所啟發(fā),請(qǐng)關(guān)注我的個(gè)人公眾號(hào)”My IO“,記住我!

總結(jié)

以上是生活随笔為你收集整理的使用LightBDD轻松实现行为驱动开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。