Я нашел эту замечательную статью от Мартина Фаулера, которая объясняет, что происходит:
http://martinfowler.com/bliki/JunitNewInstance.html
Престижность книги xUnit Test Patterns, так как именно она привела меня к статье.
Я не знаю, потому что я был парнем из Java или просто делал какие-то предположения. JUnit создает новый объект TestCase для каждого метода при запуске тестов. Это означает, что даже глобальные переменные сбрасываются для каждого метода тестирования и не используются совместно.
Это не относится к NUnit. NUnit создает только один объект TestCase, поэтому любые глобальные переменные являются общими. Том, вы правы в том, что MVC создает глобальную переменную для моих маршрутов, однако NUnit не создает ее и создает новую для каждого теста, как это делают большинство других сред xUnit.
Я поместил код регистра маршрутов в метод TestFixtureSetup, и он, конечно, работает. Я рад, что понимаю, что происходит сейчас.