我有一个单元测试课:
type [<TestFixture>] BetTests()=
[<Test>]
member x.HasGoodOddsTest() =
let ret = HasGoodOdds 10.0
Assert.IsFalse(ret, "Expected false");
和在类之外定义的静态方法:
let HasGoodOdds odds = odds >= 20.0
但我收到编译错误:“未定义值或构造函数'HasGoodOdds'。”
超出课程范围的语法是什么?谢谢!
答案 0 :(得分:2)
HasGoodOdds是否定义在BetTests类之上?它是在同一个文件中定义的吗?
它需要在它上面定义(在先前的文件中,或在此文件中的上面 - 通常你不能在定义它们之前引用F#中的实体),并且如果BetTests类没有定义在同一个文件中模块,您需要使用限定名称(如@Vitaliy所说)或使用'open'声明将命名空间/模块放入范围。
答案 1 :(得分:1)
此方法应在模块中定义。使用Namespace.ModuleName.Method
惯例