6

我正在使用 F# 编写我的测试方法,但 Nunit 抱怨这些方法是非公开的。

    namespace Test

open NUnit.Framework

type public Test() = 

    [<Test>]
    let testIt () =

        Assert.AreEqual(10,10)

我需要改变什么?

4

2 回答 2

11

由于let绑定对父类型是私有的,因此您必须member改用:

namespace Test

open NUnit.Framework

[<TestFixture>]
type public Test() = 

    [<Test>]
    member x.testIt() =
        Assert.AreEqual(10, 10)

如果您不需要复杂的设置,let最好直接使用模块级绑定:

module Test

open NUnit.Framework

[<Test>]
let testIt() = Assert.AreEqual(10, 10)
于 2013-01-30T16:26:37.747 回答
7

您可以将 F# 测试用例放在一个模块中,以使它们对 NUnit 公开和可见:

module Tests

open NUnit.Framework

let [<Test>] ``10 should equal 10`` () = Assert.AreEqual(10,10)
于 2013-01-31T07:54:21.417 回答