測試指令碼示例 通過示例進行變異測試 執行測試

2021-10-08 05:25:53 字數 2521 閱讀 2637

測試指令碼示例

本系列的第二篇文章演示了如何在控制貓門鎖閉和解鎖的家庭自動化系統(has)應用程式中實現確定白天還是夜晚的邏輯。 第三篇文章介紹了如何編寫**以在晚上鎖定門並在白天將其解鎖的​​應用程式中使用該邏輯。

提醒一下,請按照此處的說明進行操作 ,以繼續使用.net xunit.net測試框架。

假設貓門是一種複雜的物聯網(iot)產品,具有ip位址,可以通過向其api傳送請求來進行訪問。 為簡潔起見,本系列文章不涉及如何對iot裝置進行程式設計。 相反,它模擬服務以將精力集中在測試驅動開發(tdd)和變異測試上。

首先編寫失敗的單元測試:

[ fact 

]public

void givennighttimedisabletrapdoor

()

這描述了全新的元件或服務(cattrapdoor)。 該元件(或服務)具有在當前時間下控制活板門的功能。 現在是時候實現cattrapdoor了

}

該介面無法執行。 它僅描述構建cattrapdoor服務時的意圖。 介面是建立所使用服務的抽象的好方法。 從某種意義上說,您可以將此介面視為cattrapdoor服務的api。

return trapdoorstatus

;}}}

這個新的fakecattrapdoor類實現了icattrapdoor介面。 其方法control接受字串值dayornight,並檢查傳入的值是否為「 nighttime」。 如果是這樣,它將把trapdoorstatus從「 undetermined」修改為「 cat trap door disabled」,並將該值返回給呼叫客戶端。

fakecattrapdoor

因為它不是真正的貓陷阱門的代表。

偽造品可以幫助您確定處理邏輯。

一旦您的邏輯密閉,虛假服務將替換為真實服務(此主題保留用於整合測試的學科)。

實施了所有功能後,所有單元測試都會在執行時通過:

starting test execution, please wait...

total tests; 3. passed: 3. failed: 0. skipped: 0.

test run successful.

test execution time: 1.3913 seconds

方案2:在白天啟用貓陷阱門

這應該很容易,只是第一種情況的另一面。 首先,編寫失敗的測試。 將以下單元測試新增到unittest資料夾中的unittest1.cs檔案中:

[ fact 

]public

void givendaylightenabletrapdoor

()

將「日光」狀態傳送到cattrapdoor服務時,您可能會期望收到「啟用了貓陷阱門」通知。 執行單元測試時,您會看到預期的結果,該結果將按預期失敗:

starting test execution, please wait...

[xunit unittest.unittest1.unittest1.givendaylightenabletrapdoor [fail]

failed unittest.unittest1.unittest1.givendaylightenabletrapdoor

[...]

單元測試預期會收到「啟用了貓陷阱門」通知,但被告知貓陷阱門狀態為「未確定」。 涼; 現在是解決此小故障的時候了。

fakecattrapdoor中新增三行**即可達到目的

if

( dayornight

=="daylight"

)

再次執行單元測試,所有測試通過:

starting test execution, please wait...

total tests: 4. passed: 4. failed: 0. skipped: 0.

test run successful.

test execution time: 2.4888 seconds

太棒了! 一切看起來都不錯,所有的單元測試都是綠色的,您擁有堅如磐石的解決方案。 謝謝,tdd!

翻譯自:

測試指令碼示例

c 呼叫lua指令碼測試執行效率

include extern c pragma comment lib,lua51.lib 載入lua鏈結庫 lua state l 建立全域性lua物件指標 long long use lua fun lua state l,const char funname,int a,int b long ...

Linux上如何測試 執行python指令碼

有兩種方式 1 直接使用python x.py執行。其中python可以寫成python的絕對路徑。使用which python進行查詢。2 在檔案的頭部 第一行 寫上 usr bin python2.7,這個地方使用python的絕對路徑,就是上面用which python查詢來的結果。然後在外面...

測試思想 測試執行 如何進行相容性測試?

如何進行相容性測試?by 授客 qq 1033553122 如何進行相容性測試?這個問題說簡單也很簡單,說難也難。為何說它簡單呢?把全部需要相容的環境都過一遍,不就好了,有啥的呢?那又為何說它難呢?全部相容的環境都過一遍,需要多少時間呀,而且也可能沒那麼多環境裝置呀 本文暫不談缺乏裝置的情況 那咋辦...