Mathematica "tries to be helpful" by remembering assignments you have made in the past. So if minutes or even months ago, at least if it was since the last time you started Mathematica, you wrote y[ t_ ]=7 then any time later you use y[ t ] Mathematica is going to nearly instantly replace that with 7 and you may get completely confusing error messages or even nothing at all from DSolve, because you might not realize those old assignments are still lurking out there..
A good idea, unless you know enough to know when you don't need this, is to put
Clear[y,x];
immediately before your DSolve which uses y'[ x ], y[ x ], x, etc, etc. Include any and all the variables you use inside your DSolve and the Clear will silently delete all those stored assignments and let your = and == hopefully behave the way you think they should.
If you haven't done this at some time in the future and you get a puzzling non-answer from DSolve then one trick that sometimes helps is to use your mouse to highlight the entire {...} inside your DSolve, copy that to the clipboard, paste into an empty spot in your notebook, put the cursor at the end of it, tap <shift><enter> to let Mathematica evaluate it and look at the result. If it looks exactly what is inside your DSolve then this trick isn't helping, but if part of that looks different and perhaps includes things like True or False instead of y[ 0 ]==5, etc, then that is a strong hint that some old assignment has given DSolve something different than what you thought.