Я пытаюсь сделать инъекцию зависимостей для своих тестов, используя nUnit. Я новичок в TDD и nUnit, поэтому я могу пропустить что-то простое. Поэтому в основном я создал метод SetUp для своих интерфейсов. Я изначально использовал конструктор, но при чтении TDD я плохо читал, поэтому теперь использую метод.
Когда я запускаю свой тест, я создаю объект и назначаю его интерфейсу, а затем вызываю метод с использованием этого интерфейса. Я хочу проверить, может ли он разбирать строку десятичной.
Когда я запускаю свой тест, он говорит, что тест завершился неудачно, и сообщение: Недопустимая подпись для метода SetUp или TearDown
См. Ниже фактический код:
public class DonorTests
{
private IDonor _Donor;
private IValidateInput _ValidInput;
//DonorTests(IDonor donor, IValidateInput validInput)
//{
// _Donor = donor;
// _ValidInput = validInput;
//}
[SetUp]
void Setup(IDonor donor, IValidateInput validInput)
{
_Donor = donor;
_ValidInput = validInput;
}
[Test]
public void HandleStringNotDecimal()
{
_ValidInput = new ValidateInput();
Assert.IsTrue(_ValidInput.IsDecimal("3445.3450"));
}
}
Мой класс, который использует этот интерфейс
public class ValidateInput : IValidateInput
{
public decimal RoundTwoDecimalPlaces(decimal amount)
{
return Math.Round(amount);
}
public bool IsDecimal(string amount)
{
decimal ParsedDecimal;
return Decimal.TryParse(amount, out ParsedDecimal);
}
public decimal ConvertToString(string value)
{
decimal ParsedDecimal;
Decimal.TryParse(value, out ParsedDecimal);
return ParsedDecimal;
}
}