2015-05-14 4 views
1

У меня есть устаревший код, который мне нужен для модульного тестирования без изменения. Некоторые детали не проверяются. Я использую Rhinomocks, я застрял в том, как создавать макет статического класса и проверять любые Ожидание на нем. Вот пример кода:Как тестировать статический класс Rhino mocks

public static class BadGuy 
{ 
    private static event Badevent; 

} 

public class GoodGuy 
{ 
    public GoodGuy() 
    { 
     BadGuy.Badevent += GoodGuyBadluck; 
    } 

    private GoodGuyBadluck() 
    { 
    .... 
    } 

} 

ответ

1

RhinoMocks не будет издеваться над статическими классами. Если вы можете абстрагировать свои статические классы, чтобы они сидели внутри насмешливых классов, тогда вы можете использовать фреймворк, такой как Microsoft Moles, TypeMock или JustMock, чтобы имитировать их.

0

Если вы можете исключить статический класс из вашего модульного теста, вы можете создать фальшивую реализацию и вставить свой собственный заглушку для контроля активности. Что-то вроде этого:

/// 
/// My fake implementation 
/// 
public static class BadGuy 
{ 
    private static event Badevent; 
    public static void TriggerEvent() 
    { 
     Badevent(); 
    } 
}