Как правило, вы хотите отделить общедоступный интерфейс вашего веб-сервиса от фактической реализации настолько четко, насколько это возможно, в вашем примере вы сделали это, заключив их в AnObject
, что позволяет по отдельности тестировать инкапсулированные методы отдельно (чтов противном случае это большая проблема, особенно для веб-методов).
Сказав это с точки зрения тестирования, я бы предпочел сделать следующее:
[WebMethod]
public int WrapperMethod(int c)
{
return AnObject.WrapperMethod(c)
}
Это позволит вам писать тесты, которые тестируют WrapperMethod
напрямую (инкапсулировано в AnObject
), вместо того, чтобы пытаться воссоздать тестирование для AnObject.StaticMethod1() + AnObject.StaticMethod2()
в ваших модульных тестах - это быстро становится грязным, потому что теперь у вас одинаковая логика в двух разных местах.