There should only be a few other components.... the temp sensor which indicates the temp to the ECU, then the ECU, which commands the relay that provides power to the fan. The loop has to be complete for both the control line, and for the power. That means the wiring all has to be intact, and making good electrical contact where it is meant to.
If the fan will run directly, that's obviously not the fault.
If you have a temp reading on your instrument display, the temp sensor should be okay.
That leaves the ECU, the relay, or the wiring.
If you have a meter, you can check to see the ECU is sending the right signal to the relay.... since that's the most expensive part that seems like something we should eliminate as soon as possible.
If the voltage on the pin on the ECU that is meant to activate the relay changes as it should when the motor gets up to temp, the relay is likely not using that signal as it is meant to. you need to make sure that the voltage gets all the way to the coil of the relay and that the other side of the relay's coil is getting back to the battery.
A relay is a very simple electric motor -- when you apply power across the coil, the armature moves from the Normally Closed pin, to the Normally Open. Power from the battery is supposed to be constantly present on the Common pin, and goes whichever way the armature sends it.
You can also check the relay's action, by applying 12VDC to the coil pin and checking to hear the 'click'.
You can also use your meter to Ohm between the 'C' and 'NO' pins -- that should be wide open (infinite) with no power applied. The opposite should be true if you measure between the 'C' and the 'NC'..... that should be a dead short, and go open when you apply power.
It is not all that uncommon for relays to eventually wear out and fail.... but I would just as readily expect that there is a corroded contact which is preventing everything from working.