我尝试以这种方式组合成员数据和自动数据属性:
using Xunit;
using Ploeh.AutoFixture.Xunit2;
class MemberAutoDataAttribute : CompositeDataAttribute
{
public MemberAutoDataAttribute(string memberName)
: base(
new MemberDataAttribute(memberName),
new AutoDataAttribute())
{
}
}
这是实现它的测试:
[Theory, MemberAutoData(nameof(CurrentWeatherResponses))]
public void ParseCurrentWeather_WeatherParsed(
string response,
Weather expectedWeather,
TemperatureUnit tempUnit)
{
// ...
}
这是CurrentWeatherResponses
成员:
public static IEnumerable<object[]> CurrentWeatherResponses
{
get
{
yield return
new object[]
{
CurrentWeatherResponse.ToString(),
new Weather() {}
};
}
}
为什么每次测试都会生成所有值,而不仅仅是温度单位?