|
Правильно ли написан unit test?
|
|||
---|---|---|---|
#18+
У меня имеется интерфейс и некий класс. Ни класса который реализует интерфейс, ни данных по 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); } Хотелось бы уточнить насколько это правильный вариант или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2014, 23:18 |
|
Правильно ли написан unit test?
|
|||
---|---|---|---|
#18+
конечно вопросу уже неделя, но все же отвечу :) в принципе вас не особо должно волновать как реализована функция базового класса. Того, что имеется вполне достаточно. Выше дело протестировать 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 не существует (тут у вас должна быть ошибка) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2014, 00:59 |
|
|
start [/forum/topic.php?fid=36&gotonew=1&tid=1554655]: |
0ms |
get settings: |
19ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
119ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 215ms |
0 / 0 |