Написание модульного теста для семафора?

1

Я нашел много вопросов о том, как писать тесты для многопоточного кода. В любом случае, они в основном слишком абстрактны, и есть только несколько примеров реальных тестов. У меня был более узкий вопрос.

Как написать хороший тест для семафора в С#? Скажем, тест для внедрения SemaphoreSlim. Он должен охватывать сущность логики, а не целую кучу деталей реализации.

Теги:
multithreading
unit-testing
semaphore

1 ответ

2

Всегда очень сложно протестировать любую операцию блокировки. Как правило, блокировка/семафор проверяется функционально. Другими словами, вместо того, чтобы пытаться создать сложный unit тест, чтобы попытаться проверить блокирующие вызовы, я бы рекомендовал создать тест, который пытается разбить код... Семафоры обычно используются для дросселирования, поэтому, если код остается работоспособным, несмотря на очень тяжелая батарея звонков, я бы счел это хорошим. Семафоры - это не код, который вы написали (предполагая, что вы используете классы.NET.), Поэтому вы не должны испытывать необходимости проверять их функциональность.

  • 1
    СемафорSlim был приведен в качестве примера. Конечно, я не хочу писать тесты для классов .NET Framework. Реальным примером может быть написание тестов, например, для этого класса: blog.cincura.net/233445-async-semaphore-with-priority

Ещё вопросы

Сообщество Overcoder
Наверх
Меню