Я много думал о модульном тестировании и о том, как улучшить читаемость модульных тестов. Я подумал, почему бы не дать персонажу классы в модульном тесте, чтобы уточнить, что они делают.
Вот простой модульный тест, который я написал:
[TestFixture]
public class when_dave_transfers_money_from_wamu_account_to_the_woodforest_account
{
[Test]
public void should_increase_the_amount_in_woodforest_account_when_transaction_successfull()
{
Dave dave = new Dave();
Wamu wamu = new Wamu();
wamu.Balance = 150;
wamu.AddUser(dave);
Woodforest woodforest = new Woodforest();
woodforest.AddUser(dave);
FundTransferService.Transfer(100, wamu, woodforest);
Assert.AreEqual(wamu.Balance, 50);
Assert.AreEqual(woodforest.Balance, 100);
}
}
Вот класс Дэйв:
/// <summary>
/// This is Dave!
/// </summary>
public class Dave : User
{
public Dave()
{
FirstName = "Dave";
LastName = "Allen";
}
}
Название юнит-теста явно служит цели. Но, может быть, я хочу покопаться немного глубже и назначить учетные записи Wamu и Woodforest Дэйву при каждом создании Дэйва. Проблема в том, что он отойдет от читабельности, так как мне придется использовать значения индекса для ссылки на учетную запись.
Что вы думаете о том, чтобы сделать это более читабельным?