2013-04-17 6 views
0

мне нужно, чтобы проверить этот класс:Столбики доступ к защищенным переменным

public abstract class GaBase 
{ 
    protected GoogleAnalyticsInfo GAInfo; 

    protected abstract void PopulateGAInfo(); 

    public string GetGoogleAnalyticsTag() 
    { 
     //Return any info related to GAInfo 
    } 

    //Some other stuffs 
} 

мне нужно модульного тестирования метода GetGoogleAnalyticsTag, но мне нужно установить свойство GAInfo, чтобы проверить его должным образом. В производственном коде мы делаем это, используя мой метод PopulateGaInfo, когда мы получаем этот класс.

Как установить GAInfo с помощью заглушек?

Вот мой метод испытания:

public void MyTest1() 
{   
    var ga = new StubGaBase() 
     { 
      PopulateGAInfo01 =() => 
       { 
        // How can I set GAInfo here? 
       } 
     }; 

    // The method I need to test 
    var script = ga.GetGoogleAnalyticsTag(); 

    // My asserts 
} 
+1

awnser зависит от того, что вы хотите для тестирования и работы метода GetGoogleAnalyticsTag(). Без реализации очень сложно задать свой вопрос. – Peter

+0

Если вы хотите, чтобы вас знали/называли Benjamin, пожалуйста, обновите свой профиль, а не помещайте эту информацию в свой вопрос. –

ответ

0

Существует закономерность известна как «Подкласс к-Test», который наводит на мысль, если вам необходимо получить доступ к методам или поведения (например, имитируя повышающие события) вы бы передать -roll-заглушка/макет, который предоставляет функциональные возможности, необходимые для теста. Этот заглушка существует только в вашем тестовом проекте.

, если вы заинтересованы только в тестировании защищенного переменных абстрактного класса, просто создать производный класс и выставить метод, который выполняет работу и возвращает значения, которые вы заинтересованы в.