Возможно ли, чтобы ITestOutputHelper, созданный xUnit, был доступен в контексте AutoFixture?C#

Место общения программистов C#
Ответить
Anonymous
 Возможно ли, чтобы ITestOutputHelper, созданный xUnit, был доступен в контексте AutoFixture?

Сообщение Anonymous »

Можно ли сделать так, чтобы ITestOutputHelper, созданный xUnit, был доступен в контексте AutoFixture?

В своих интеграционных тестах я использую класс Builder, который содержит вспомогательные методы для некоторых рутинных операций. . Чтобы скрыть сложность создания класса, я использую собственный AutoDataAttribute, поэтому мои тесты получают созданный объект в качестве параметра метода тестирования из AutoFixture.

Теперь я решил добавить некоторые функции ведения журнала. в Builder и не могу узнать, как передать ITestOutputHelper в конструктор Builder из пользовательского AutoDataAttribute.

using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoNSubstitute;
using Ploeh.AutoFixture.Xunit2;
using Xunit;
using Xunit.Abstractions;

namespace XunitAutoFixtItestOutput
{
public class Class1Tests
{
private readonly ITestOutputHelper _output;

public Class1Tests(ITestOutputHelper output)
{
_output = output;
}

[Theory, DefaultAutoData]
public void UnitOfWork_StateUnderTest_ExpectedBehavior(Builder builder)
{
}
}

public class Builder
{
private readonly ITestOutputHelper _outputHelper;

public Builder(ITestOutputHelper outputHelper)
{
_outputHelper = outputHelper;
}

public void DoSomething()
{
_outputHelper.WriteLine("Something happened");
}
}

public class DefaultAutoData : AutoDataAttribute
{
public DefaultAutoData() : base(new Fixture().Customize(new DefaultCustomization()))
{
this.Fixture.Customize(f => f.FromFactory(new Builder(??Where to get it from??)));
}
}

public class DefaultCustomization : CompositeCustomization
{
public DefaultCustomization() : base(new AutoConfiguredNSubstituteCustomization())
{
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/421 ... ble-in-aut
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»