[英]Should property tests run with unit tests when using the RGR methodology?
使用RGR方法時,屬性測試應與單元測試一起運行嗎?
RGR:紅色->綠色->重構
我注意到我已經在18ms內執行了單元測試。
但是,我對同一方法的屬性測試需要215ms。
module Tests.Units
open FsUnit
open NUnit.Framework
open NUnit.Core.Extensibility
open FsCheck.NUnit
open FsCheck.NUnit.Addin
open FsCheck
let add x y = (x + y)
let commutativeProperty x y =
let result1 = add x y
let result2 = add y x // reversed params
result1 = result2
[<Test>]
let ``When I add two numbers, the result should not depend on parameter order``()=
Check.Quick commutativeProperty
[<Test>]
let ``add two numbers`` () =
add 2 3 |> should equal (5)
因此,我的屬性測試需要四分之一秒才能執行。
另外,這只是一個簡單的屬性測試。
什么是運行屬性測試的有效方法?
只是簽到?
使用默認設置, 每個FsCheck屬性運行100次 ,因此它變慢也就不足為奇了。 但是請注意,它並沒有慢100倍。
在編寫屬性測試(針對目標功能)時,我經常使用“紅色/綠色/重構”過程,並發現它運行良好。
這比在C#中進行TDD時要慢(也是因為F#編譯器比C#編譯器要慢)。 另一方面,F#類型系統更具表現力,因此我還發現我比C#中對類型系統的依賴更多 。 這意味着我需要編寫更少的測試。
總而言之,我發現F#和FsCheck的組合比C#和普通單元測試更有優勢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.