Я пишу тонкую обертку вокруг Словаря, разработанную таким образом, чтобы быть потокобезопасной. Таким образом, требуются некоторые блокировки, и большинство логических решений связано с обеспечением того, что все вещи заблокированы должным образом и доступ к ним осуществляется поточно-безопасным способом.
Теперь я пытаюсь unit test его. Одна важная вещь, которую я хотел бы использовать unit test, - это поведение блокировки, чтобы обеспечить ее правильность. Тем не менее, я никогда не видел, чтобы это было сделано, поэтому я не уверен, как это сделать. Кроме того, я знаю, что могу просто использовать кучу нитей, чтобы бросить вещи на стене, но с этим типом теста нет никакой гарантии, что он потерпит неудачу, когда это будет неправильно. Это зависит от ОС с поведением потока.
Какие существуют способы обеспечения правильности моего поведения блокировки с помощью модульных тестов?