У меня есть следующие модульные тесты для метода расширения. Оба теста используют один и тот же объект (IBinanceClient), поэтому я сделал это в конструкторе. Он реализует IDisposable, потому что IBinanceClient тоже. Вопрос в следующем: действительно ли внедрение IDisposable в модульных тестах действительно полезно / хорошая практика?
Я также открыт для любых рекомендаций по остальному коду, даже если это не так уж много.
using Binance.Net;
using Binance.Net.Interfaces;
using Binance.Net.Objects;
using XBot.Models.Strategies.Whore;
using CryptoExchange.Net.Authentication;
using System;
using Xunit;
namespace XBot.Tests
{
public class NoobStrategyExtensionsTests : IDisposable
{
private readonly IBinanceClient _client;
public NoobStrategyExtensionsTests()
{
_client = new BinanceClient(new BinanceClientOptions()
{
ApiCredentials = new ApiCredentials("-", "-"),
AutoTimestamp = true,
AutoTimestampRecalculationInterval = TimeSpan.FromMinutes(30)
});
}
[Fact]
public void CheckAndFillBNB_OneBNB_ReturnsTrue()
{
// Arrange
// Act
bool actual = _client.CheckAndFillBNB(1, true);
// Assert
Assert.True(actual);
}
[Theory]
[InlineData(3, false)]
[InlineData(1, true)]
[InlineData(2, false)]
[InlineData(1.99, true)]
public void CheckAndFillBNB_MultipleBNBQuantities_ReturnsTrue(decimal input, bool expected)
{
// Arrange
// Act
bool actual = _client.CheckAndFillBNB(input, true);
// Assert
Assert.Equal(expected, actual);
}
public void Dispose()
{
if (_client != null)
_client.Dispose();
}
}
}