Как выполнить юнит-тестирование 2 методов в одном классе, где первый метод вызывает второй метод? - PullRequest
2 голосов
/ 23 декабря 2010

Допустим, у меня есть класс MyClass с двумя открытыми методами, methodA() и methodB(), оба возвращают один и тот же тип объекта.

methodA() выполнит некоторые вычисления и затем вызовет methodB.

Как мне проверить этот класс?Должен ли я повторить все тесты, которые я сделал для methodA() на methodB()?

Как подойти к этому?

Спасибо

Ответы [ 3 ]

2 голосов
/ 23 декабря 2010

Вы должны проверить methodA(), как будто вы не знаете, как это реализовано. Затем, если вы в будущем измените его на использование methodC() вместо methodB(), у вас останется покрытие.

2 голосов
/ 23 декабря 2010

Протестируйте оба независимо, потому что так их увидят клиенты.

1 голос
/ 23 декабря 2010

Это зависит от тестируемого кода и от того, насколько тщательно вы хотите быть.Если на метод methodA () влияет methodB (), вы можете протестировать только methodA (), однако, как duffymo говорит, что лучше тестировать оба, а Роберт говорит, что лучше всего кодировать тест для methodA (), как если бы вы этого не делали.Не знаю, что это было реализовано через methodB () и то же самое для methodB ().Так как methodA () и methodB () являются открытыми, каждый из них должен быть проверен отдельно.Но лучше всего, если тест для methodA () гарантирует, что methodA () выполнил свою работу, а тест для methodB () гарантирует, что methodB () выполнил свою работу, поэтому тесты не должны быть такими же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...