1
Linux 3.2.0-3-amd64 #1 SMP Mon Jul 23 02:45:17 UTC 2012 x86_64 GNU/Linux
Mono 2.10.8.1 (Debian 2.10.8.1-7) (64-bit)
glib-sharp 2.12.0.0
FitNesse (v20121220)
FitSharp release 2.2 for .net 4.0

次のジェネリックメソッドを含むC#フィクスチャがあります

public Func<T> GetProcedure<T>(string name)
{
    return () => default(T);
}

質問:スリムスクリプトテーブルからGetProcedureを呼び出すにはどうすればよいですか?

| show | GetProcedure; <?specify type here?> | text |

ソースコードで次のテストを見つけたので、それは可能であるはずです。ただし、slimが解析できるようにスクリプトテーブル内でタイプTを定義する方法がわかりません... https://github.com/jediwhale/fitsharp/blob/master/source/fitSharpTest/NUnit/Machine/ MemberQueryTest.cs

[Test] public void GenericMethodWithParmsIsInvoked() {
    var member = new MemberName("genericmethodofsystemint32", "genericmethod", new[] { typeof(int)});

    var method = MemberQuery.FindInstance(MemberQuery.FindMember, instance, new MemberSpecification(member, 1));
    Assert.IsNotNull(method);
    var result = method.Invoke(new object[] {123});
    Assert.AreEqual("sample123", result.Value.ToString());
}

// This method found via the reflection above.
// see: fitSharp.Test.Double.SampleClass
public string GenericMethod<T>(T input) {
    return "sample" + input;
}
4

1 に答える 1

1

残念ながら、Slim ではジェネリック メソッドはサポートされていません。フィット テスト システムを使用している場合は、メソッド名として「getprocedure of mytype」と言うでしょう。

于 2013-03-17T04:24:12.033 に答える