Как лучше всего выполнить модульное тестирование программного обеспечения, которое по-разному ведет себя у разных пользователей? - PullRequest
3 голосов
/ 14 апреля 2009

Как отмечается в заголовке вопроса, как лучше всего выполнить предварительное модульное тестирование в приложении, которое ведет себя по-разному в зависимости от того, какой пользователь в данный момент вошел в систему?

Кроме того, для приложений, которые хранят информацию о внутреннем состоянии, каков наилучший способ выполнить тестирование и управлять всеми тестами?

Ответы [ 4 ]

2 голосов
/ 14 апреля 2009

Если под пользователем вы подразумеваете системного пользователя, например, Вход в Windows - тогда для модульного тестирования лучше всего отделить ваш код от этой зависимости.

Под этим я подразумеваю, чтобы ваш код имел внутреннюю концепцию пользователя, которую легко установить в модульных тестах. Тогда большая часть вашего кода будет знать только об этой внутренней концепции и может быть протестирована, не беспокоясь о реальном входе в систему.

Тогда сложный для тестирования слой (слой, который отображает пользователя системы и все, что вы извлекаете из этой папки, например, расположения папок, разрешения и т. Д.), Минимизируется. Некоторый тип приемочного тестирования, который может иметь дело с логинами высокого уровня, может затем использоваться для тестирования этого уровня.

1 голос
/ 14 апреля 2009

Я предполагаю, что есть какой-то провайдер, который говорит "этот пользователь может выполнить это действие" или "для этого пользователя выполнить это действие".

Если это так, вы просто создаете заглушку для этого провайдера и позволяете ему возвращать разные вещи для ситуаций, которые вы хотите проверить.

Если бы это было не так, я бы создал такого провайдера.

То же самое касается состояния: сохраните состояние в классе хранения состояний и спросите его, в каком состоянии вы находитесь. В тестовой среде создайте для него заглушку.

Разумеется, вы также можете выполнить модульное тестирование класса сохранения состояний.

1 голос
/ 14 апреля 2009

Создание отдельных тестов для разных типов пользователей и имитация их входа (или регистрации). Таким образом, вы можете протестировать для каждого типа пользователей, каково должно быть поведение, например, на основании разрешения пользователя.

Если внутреннее состояние приложения также играет роль, вы в значительной степени застряли в создании тестов для каждого (разумного) сценария.

0 голосов
/ 14 апреля 2009

Если поведение определяет только зарегистрированный тип пользователя, то просто написать тест для каждого типа пользователя [вы получите n тестов; n - количество типов пользователей].

Если это комбинация между некоторым внутренним состоянием системы и типом пользователя, вы пишете тест для каждого состояния для каждого типа пользователя [в итоге вы получите n * m test; n - количество пользовательских типов, m - количество внутренних состояний системы].

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