Вместо прямого доступа к заголовкам предоставьте абстракцию, к которой обращается ваш код. Например, если у вас есть заголовок с именем «Клиент», вы можете предоставить контекстный класс, к которому вы можете получить доступ, например, так:
string customer = MyContext.Current.Customer;
Теперь все, что вам нужно сделать, это поменять импровизированную реализацию в ваших тестовых классах, которая не требует всей работы.
Обратите внимание, однако, что тестирование ASMX вне веб-сервера не совсем идеально, так как оно может пропустить такие вещи, как сериализация. Если бы вы могли развернуть на тестовом сервере и протестировать развернутую копию, вам было бы лучше. Если вы действительно заботитесь о тестировании, WCF является лучшим вариантом, поскольку вы можете довольно легко самостоятельно размещать WCF в тестах.