Class AutoMemberDataSourceAttribute

Namespace: AutoFixture.TUnit
Assembly: AutoFixture.TUnit.dll

Provides a data source for a data theory, with the data coming from one of the following sources and combined with auto-generated data specimens generated by AutoFixture:

  1. A static property
  2. A static field
  3. A static method (with parameters) The member must return test data in any shape supported by TUnit MethodDataSource (for example IEnumerable<object?[]>, IEnumerable<T>, tuples, or a single value).
public class AutoMemberDataSourceAttribute : BaseDataSourceAttribute, IDataSourceAttribute, IDataSource

Inheritance

objectAttributeBaseDataSourceAttributeAutoMemberDataSourceAttribute

Derived

AutoMemberDataSourceAttribute<T>

Implements

IDataSourceAttribute, IDataSource

Inherited Members

BaseDataSourceAttribute.GetData(DataGeneratorMetadata), BaseDataSourceAttribute.GetDataRowsAsync(DataGeneratorMetadata), BaseDataSourceAttribute.SkipIfEmpty, BaseDataSourceAttribute.DeferEnumeration, Attribute.GetCustomAttributes(MemberInfo, Type), Attribute.GetCustomAttributes(MemberInfo, Type, bool), Attribute.GetCustomAttributes(MemberInfo), Attribute.GetCustomAttributes(MemberInfo, bool), Attribute.IsDefined(MemberInfo, Type), Attribute.IsDefined(MemberInfo, Type, bool), Attribute.GetCustomAttribute(MemberInfo, Type), Attribute.GetCustomAttribute(MemberInfo, Type, bool), Attribute.GetCustomAttributes(ParameterInfo), Attribute.GetCustomAttributes(ParameterInfo, Type), Attribute.GetCustomAttributes(ParameterInfo, Type, bool), Attribute.GetCustomAttributes(ParameterInfo, bool), Attribute.IsDefined(ParameterInfo, Type), Attribute.IsDefined(ParameterInfo, Type, bool), Attribute.GetCustomAttribute(ParameterInfo, Type), Attribute.GetCustomAttribute(ParameterInfo, Type, bool), Attribute.GetCustomAttributes(Module, Type), Attribute.GetCustomAttributes(Module), Attribute.GetCustomAttributes(Module, bool), Attribute.GetCustomAttributes(Module, Type, bool), Attribute.IsDefined(Module, Type), Attribute.IsDefined(Module, Type, bool), Attribute.GetCustomAttribute(Module, Type), Attribute.GetCustomAttribute(Module, Type, bool), Attribute.GetCustomAttributes(Assembly, Type), Attribute.GetCustomAttributes(Assembly, Type, bool), Attribute.GetCustomAttributes(Assembly), Attribute.GetCustomAttributes(Assembly, bool), Attribute.IsDefined(Assembly, Type), Attribute.IsDefined(Assembly, Type, bool), Attribute.GetCustomAttribute(Assembly, Type), Attribute.GetCustomAttribute(Assembly, Type, bool), Attribute.Equals(object?), Attribute.GetHashCode(), Attribute.Match(object?), Attribute.IsDefaultAttribute(), Attribute.TypeId, object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Constructors

AutoMemberDataSourceAttribute(string, params object?[])

Initializes a new instance of the AutoMemberDataSourceAttribute class.

public AutoMemberDataSourceAttribute(string memberName, params object?[] parameters)

Parameters

memberName string

The name of the public static member on the test class that will provide the test data.

parameters object?[]

The parameters for the member (only supported for methods; ignored for everything else).

AutoMemberDataSourceAttribute(Type?, string, params object?[])

Initializes a new instance of the AutoMemberDataSourceAttribute class.

public AutoMemberDataSourceAttribute(Type? memberType, string memberName, params object?[] parameters)

Parameters

memberType Type?

The type declaring the source member.

memberName string

The name of the public static member on the test class that will provide the test data.

parameters object?[]

The parameters for the member (only supported for methods; ignored for everything else).

AutoMemberDataSourceAttribute(Func<IFixture>, string, params object?[])

Initializes a new instance of the AutoMemberDataSourceAttribute class.

protected AutoMemberDataSourceAttribute(Func<IFixture> fixtureFactory, string memberName, params object?[] parameters)

Parameters

fixtureFactory Func<IFixture>

The fixture factory delegate.

memberName string

The name of the public static member on the test class that will provide the test data.

parameters object?[]

The parameters for the member (only supported for methods; ignored for everything else).

AutoMemberDataSourceAttribute(Func<IFixture>, Type?, string, params object?[]?)

Initializes a new instance of the AutoMemberDataSourceAttribute class.

protected AutoMemberDataSourceAttribute(Func<IFixture> fixtureFactory, Type? memberType, string memberName, params object?[]? parameters)

Parameters

fixtureFactory Func<IFixture>

The fixture factory delegate.

memberType Type?

The type declaring the source member.

memberName string

The name of the public static member on the test class that will provide the test data.

parameters object?[]?

The parameters for the member (only supported for methods; ignored for everything else).

Exceptions

ArgumentNullException

Thrown when arguments are null.

Properties

FixtureFactory

Gets the fixture factory that provides the missing data from MemberType.

public Func<IFixture> FixtureFactory { get; }

Property Value

Func<IFixture>

MemberName

Gets the member name.

public string MemberName { get; }

Property Value

string

MemberType

Gets the type of the class that provides the data.

public Type? MemberType { get; }

Property Value

Type?

Parameters

Gets the parameters passed to the member. Only supported for static methods.

public object?[] Parameters { get; }

Property Value

object?[]

Methods

GetData(DataGeneratorMetadata)

Returns the test data provided by the source.

public override IAsyncEnumerable<Func<Task<object?[]?>>> GetData(DataGeneratorMetadata dataGeneratorMetadata)

Parameters

dataGeneratorMetadata DataGeneratorMetadata

The metadata for the target method for which to provide the arguments.

Returns

IAsyncEnumerable<Func<Task<object?[]?>>>

Returns a sequence of argument collections, where each collection is an array of objects representing the arguments for a test method.