簡體   English   中英

使用RGR方法時,屬性測試應與單元測試一起運行嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM