I have a few methods that are impacted by concurrency. Specifically "Rush" (a.k.a Race) conditions. Should I unit test them or integrate/black-box test them?
I think that setting up a unit test might be a rather difficult task, but also is integration test...
i've found this article and its quite instructive about my question: https://testing.googleblog.com/2014/02/minimizing-unreproducible-bugs.html
Unit tests must be deterministic, so concurrency doesn't belong there. (I keep my unit tests completely synchronous.)
Go for integration tests to sniff out race conditions — but be prepared for false positives. In other words, the tests passing is no proof that you don't have a race condition. But a failure will alert you to something you need to fix.