0

私は AutoFixture AutoMoq を使用しています。これにより、クラスで使用されるすべてのインターフェイスのモックが大幅に簡素化され、初期化されます。

コンストラクターのコードが部分的にカバーされていることに気付きましたが、コンストラクターもカバーできるAutoMoqDataAttributeように変更ArgumentNullExceptionできますか?

ここに画像の説明を入力

public class ServiceTest
{
    [Theory, AutoMoqData]
    public async Task Do_Test_For_DoMethod(Service sut)
    {
        await sut.DoMethod();
    }
}

AutoMoqData属性クラス、

public class AutoMoqDataAttribute : AutoDataAttribute
{
    public AutoMoqDataAttribute()
        : base(() => new Fixture().Customize(new AutoMoqCustomization()))
    {

    }
}

サービスクラスコード、

 public class Service
{
    private readonly IServiceClient _serviceClient;
    private readonly ILogger<Service> _logger;

    public Service(IServiceClient serviceClient, ILogger<Service> logger)
    {
        _serviceClient = serviceClient ?? throw new ArgumentNullException(nameof(serviceClient));
        _logger = logger ?? throw new ArgumentNullException(nameof(logger));
    }


    public async Task DoMethod()
    {

        await _serviceClient.Do();
    }
}
4

1 に答える 1