Гость
Map
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Правильно ли написан unit test? / 2 сообщений из 2, страница 1 из 1
23.05.2014, 23:18
    #38650794
Perceptron.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли написан unit test?
У меня имеется интерфейс и некий класс. Ни класса который реализует интерфейс, ни данных по id клиента и его данным нет
Имеется только следующее

public interface IService
{
double GetData(int clientId);
}

public class ClientInfo
{
private int _clientId;
private IService _svc;
public double MoneySun;

public ClientInfo(int clientId, IService svc)
{
_clientId = clientId;
_svc = svc;
}


public void UpdateMoney()
{
MoneySun = _svc.GetData(_clientId);
}
}

Требуется написать юнит тест для updatemoney
Я написал следующий вариант:

[Test]
public void GetData()
{
Mock<IService> moqSvc = new Mock<IService>();
var сInfo = new ClientInfo(1, moqSvc.Object);
сInfo.UpdateMoney();

Assert.Greater(сInfo.MoneySun, -1);
}

Хотелось бы уточнить насколько это правильный вариант или нет?
...
Рейтинг: 0 / 0
30.05.2014, 00:59
    #38656531
Катька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли написан unit test?
конечно вопросу уже неделя, но все же отвечу :)

в принципе вас не особо должно волновать как реализована функция базового класса. Того, что имеется вполне достаточно.
Выше дело протестировать UpdateMoney()

если ничего не оговорено в спецификации (например про обработку ошибок внутри GetData), то я б поступила сл.образом:

- дописала бы тело функции GetData для разных id (их вы можете сами выбирать), т.о. чтобы протестировать различные нормальные значения, которые может возвращать GetData внутри диапазона типа double.

например, если id = 1, то GetData вернет 1.0 , если id = 0 , то GetData вернет 0.0 и т.д.

- дополнить базовую функцию GetData так, чтобы она возвращала значения приграничные и граничные значения типа double

- на случай, когда GetData не может вернуть информацию по id (нет такого id): тут конечно есть место для маневра. Можете попробовать вернуть какое-нибудь нормальное значение, например тот же 0.0 или 10.0.

- проверяем, что MoneySun не больше -1, а равно тому значению, которое вы ождидаете получить от GetData в случае конкретного id

- дописать тест, если объект ClientInfo не существует (тут у вас должна быть ошибка)
...
Рейтинг: 0 / 0
Форумы / Тестирование и QA [игнор отключен] [закрыт для гостей] / Правильно ли написан unit test? / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]