Testing concurrent accesses


I’ve recently come across a bug in one of my applications where
destroying a model can occur while it’s locked in another place for
processing. Just for the record: the destroy correctly aborts because of
this but there are files removed by dependent models being destroyed to
that can’t be restored when the rollback occurs (after_destroy is not
delayed until the actual commit…).

I know how I can solve this but I would like to create a test before
(TDD/BDD are my friends…) and I don’t know how I can handle this in
tests (reproducing a race condition isn’t especially easy).

Is there anyone on this list with experience to share on this particular


You might find this article on the JMock site useful -

They suggest trying to separate out the concurrency as a separate
class and then write unit tests around the business logic while
mocking out the concurrency.

This approach has worked for me in the past.


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs