Ich möchte dem Machine.Fakes-Framework mitteilen, einen bestimmten Wert für ein Konstruktorargument beim Erstellen des Betreffs zu verwendenVerwenden von Machine.Fakes und WithSubject <TSubject> wie Sie dem Framework mitteilen, einen spezifischen Konstruktorargumentwert beim Erstellen des Betreffs zu verwenden
Das Thema im Test hat den folgenden Konstruktor
/// <summary>
/// Initializes a new instance of the <see cref="CsvFileRepository{TModel}"/> class.
/// </summary>
/// <param name="fileService">The file service.</param>
/// <param name="repositorySettings">The repository settings.</param>
/// <param name="mappingFunction">The mapping function. The mapping function takes in a line from the CSV file and returns the model for said line.</param>
public CsvFileRepository(IFileService fileService, IRepositorySettings repositorySettings, Func<string, TModel> mappingFunction)
{
this.FileService = fileService;
this.RepositorySettings = repositorySettings;
this.MappingFunction = mappingFunction;
}
ich den Stummel eines Tests erstellt haben, wie folgt:
public class when_i_pass_a_csv_file_the_results_are_mapped_to_model_objects : WithSubject<CsvFileRepository<StandardOffer>>
{
Establish context =() => With(new OffersInFile(new[] { OfferTestData.BobsCsvTestData, OfferTestData.JohnsCsvTestData }));
Because of =() => result = Subject.Get();
It should_return_the_same_number_of_fruits_as_there_are_in_the_source_repository =() => result.Count().ShouldEqual(2);
static IEnumerable<IOffer> result;
}
Aber ich bin mir nicht sicher, wie man Machine.Fakes anweist, einen bestimmten Wert für das Argument Func mappingFunction zu verwenden.