xUnit.netのテストクラスでセットアップコードを実行しようとしていますが、テストは実行されていますが、コンストラクタは表示されません。しかし、私は一貫して取得しています私はMemberData
としてSampleValues
を使用していますので、私はこのxUnit.net:テストクラスのコンストラクタは実行されていませんか?
[Theory]
[MemberData(nameof(SampleValues))]
public void ItemShouldBeSameAsPassedInFromConstructor(T value)
{
var lease = CreateLease(value);
Assert.Equal(value, lease.Item);
}
のようなテストでそれらを使用することができ
public abstract class LeaseTests<T>
{
private static readonly object s_lock = new object();
private static IEnumerable<T> s_sampleValues = Array.Empty<T>();
private static void AssignToSampleValues(Func<IEnumerable<T>, IEnumerable<T>> func)
{
lock (s_lock)
{
s_sampleValues = func(s_sampleValues);
}
}
public LeaseTests()
{
AssignToSampleValues(s => s.Concat(CreateSampleValues()));
}
public static IEnumerable<object[]> SampleValues()
{
foreach (T value in s_sampleValues)
{
yield return new object[] { value };
}
}
protected abstract IEnumerable<T> CreateSampleValues();
}
// Specialize the test class for different types
public class IntLeaseTests : LeaseTests<int>
{
protected override IEnumerable<int> CreateSampleValues()
{
yield return 3;
yield return 0;
yield return int.MaxValue;
yield return int.MinValue;
}
}
:ここ
は、私のコードの一部ですSampleValues
を使用するすべてのメソッドで「[メソッド]にデータが見つかりませんでした」というエラーが表示されます。私がさらに調査した後、私はLeaseTests
のコンストラクタが実行されていないことも分かった。 AssignToSampleValues
へのコールでブレークポイントを設定すると、ヒットしませんでした。
なぜこのようなことが起こりますか、それを修正するために何ができますか?ありがとう。