Sorry, I don't know how you're gathering the statistics, but I was imagining that you'd want to check that the gathered statistics have some internal consistency (e.g. the total execution time >= the remote get + remote put execution times). You'd need some state in duration() in order to do that. 

OTOH, perhaps the actual statistics values should only be tested separately, in a unit test, and testing with the full cache infrastructure should only be used to see that the statistics are updated.