You appear to be correctly storing a texture and then setting that texture to a sprite, so I don't think the White Square problem they're referring to in the documentation applies to you in this situation as you don't have the texture being created in a local function scope etc.
You didn't post your main function so I'm unsure, but it would appear that you don't have a clear() or display() function wrapped around your primary SFML draw() function. http://www.sfml-dev.org/tutorials/2.2/graphics-draw.php
Assuming the texture is not actually white, in order to do some quick elimination testing you could pick a section of the loaded texture i.e. :
sprite.setTextureRect(sf::IntRect(10, 10, 32, 32)); or you could just test with a colour i.e. :
sprite.setColor(sf::Color(0, 255, 0)); // green Additionally, I've noticed that you're loading a new texture for each block. This kind of defeats the object of using a texture. With a texture you want to load it once into video memory and then point all of your sprites to that once instance to reduce draw calls and memory requirements etc (aka batching your draws). In 2D games using the concept of one large texture atlas is very common because it's so efficient. You could have a variety of block textures all tightly packed into one 'blockTypes' texture and then just use 'sprite.setTextureRect' to refer to different sections of that texture as mentioned above.
I'd just throw a few texture atlases into a map<string, sf::Texture> so that you have a single texture dictionary to refer to in all of your block objects.