Suppose there is such a method:
bool IsValid() { var argument = StaticClass.CurrentArgument; return argument > 0; } For him, there are unit tests that verify that the logic is working correctly. But the case is not covered when the method is pulled from different streams. So, is a test that checks thread safety - is it closer to a unit test or to an integration test? Also, if there is a well-known other type of tests suitable for this case, it would also be nice to know.
We will agree that thread safety is easily verified, let's say it will be achieved by adding a lock directly in this method.
My understanding is closer to integration, because the purpose of the test is to check not the business logic (its verification will be a consequence), but the use of the code in combat conditions.
Answering this question, it is probably important to understand how important thread safety is for a business, i.e. as far as business logic is concerned. And it seems that is not so significant. After all, a lock can be, for example, before calling the IsValid() method and everything will also work fine. But on the other hand, if we clearly state in the contract of a method that the method is thread-safe (for example, in the name of a method or documentation), we should probably test it here as a logical component of the method.