Reputation: 61401
I am using VS2013 Professional
, F#
, C#
and Nunit
. It is worth noting that this is my first attempt with F#
so question is most likely stupid and solution is obvious.
What I am trying to do is implement test cases using NUnit
and use TestCaseSource
attribute with TestCaseData
.
Test:
namespace Legal.Tests.Helpers
open System
open System.Collections.Generic
open System.Linq
open System.Text
open System.Threading.Tasks
open NUnit.Framework
open Legal.Website.Infrastructure
type FTest() =
[<TestFixture>]
[<TestCaseSource("FTestData")>]
let ConcatTest(text : string, expected : string) =
[<Test>]
let actual = Saga.Services.Legal.Website.Infrastructure.FunctionModule.TestFunction text
Assert.AreEqual expected actual
let FTestData : seq<TestCaseData> = [ new TestCaseData (text = "x", expected = "Item1xItem2" ); new TestCaseData (text = "y", expected = "Item1yItem2" ) ]
Function tested:
namespace Legal.Website.Infrastructure
open System
open System.Collections.Generic
open System.Linq
open System.Web
type Test(text2 : string) =
member this.Text = "Item1"
member this.Text2 = text2
module functions =
let TestFunction (text : string) =
let test = new Test (text2 = "Item2")
String.Concat [test.Text; text; test.Text2]
One thing worth noting - I have created F#
test file and file with function by renaming .cs
file to .fs
.
Problem: when I try to open
any library that is not System
(in this case Nuget package NUnit.Framework
and Referenced project Legal.Website.Infrastructure
) I get error: the namespace or module is not defined
both are referenced in Test Project and .cs
tests in same directory run fine.
Upvotes: 0
Views: 729
Reputation: 61401
My question is stupid.
.fs
files cannot be added to C# project like for example .vb
files. To do this properly one needs to add F# project to solution, see screenshot below.
Implementation:
module Implementation
let Concat(text:string) =
"root"+ text
Test:
module Test
open NUnit.Framework
[<TestFixture>]
type Test() =
member this.ConcatinationTestData() =
[new TestCaseData("roottext","text"); new TestCaseData("root","")]
[<Test>]
[<TestCaseSource("ConcatinationTestData")>]
static member ConcatinationTest(expected:string, text:string) =
Assert.AreEqual(expected,Implementation.Concat(text))
|> ignore
Debug -> Attach to process -> nunit-agent.exe
Result:
Upvotes: 1