Your example with the DependencyResolver is not much better than your original code, so yeah.. there's not much advantage of doing that.
Thankfully, that's not the way you're supposed to do it. Instead, you use constructor or property injection.
I agree with @adriaanp, easier unit testing is only a side benefit of dependency injection. The greatest benefit is that it encourages dependency free architecture. Your classes stand alone, and do not depend on a specific implementation (other than it's interface and requirements)
Another advantage is that an IoC container can control the lifetime of your dependencies. Suppose you want an object to exist for the lifetime of the request in web page. Also suppose that you want to access this object in many different classes. You could create the object in your page load event, then pass it around to every object you create that needs it. However, this can mean you need to pass it to objects that don't actually use it, simply because they create objects that need it (or they create objects that create objects that need it, or.. and so on).
With dependency injection and an IoC container, the container controls the lifetime of the object, and it deals with injecting it into objects that need it. You don't have to build this into your designs. You just get it for free.
And finally, for the testing issue. When you test something, if it has a hard coded new in there, you can't easily replace it with a mocked object to feed it test data. Suppose you want to test that an object calculates a value correctly. Feeding it test data with known values makes it easier to test.