2016-06-09 1 views
1

Я новичок в NSubstitute и 30 минут. Я не могу найти, как имитировать поля/переменные уровня класса.Преобразование из MOQ в NSubstitute, издевающееся над полем/переменной уровня класса

В MOQ Я хотел бы сделать это:

public class PlanControllerTest 
{ 

    Mock<IDataAccessTemplate> _template = new Mock<IDataAccessTemplate>(); 

    [TestMethod] 
    public void BadDataResponse() 
    { 
     Mock<ISomethingElse> other = new Mock<ISomethingElse>(); 

    } 

} 

Однако рефакторинга к NSubstitute я использую:

public class PlanControllerTest 
{ 

    ???? _template = Substitute.For<IDataAccessTemplate>(); 

    [TestMethod] 
    public void BadDataResponse() 
    { 
     var other = new Substitute.For<ISomethingElse>(); 

    } 

} 

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

http://nsubstitute.github.io/help/creating-a-substitute/

и ближайший я найти с помощью Google является:

How to set value to a local variable of a class using NSubstitute in TestProject?

Конечно, это не первый раз, когда это было предложено? ?

+0

Использование динамического ключевого слова - это опция. Visual Studio следует указать ключ возвращаемого типа. –

+0

Если документы были обновлены до 'ISomeInterface substitute = Substitute.For ()', это поможет? Моя единственная оговорка в том, что 'var', кажется, самый распространенный способ, которым это написано на C#, и, возможно, документы должны отражать это? –

ответ

1

См. Код NSubstitute. Реализация За <T> вернет T. Поэтому использование IDataAccessTemplate должно компилироваться.

Смежные вопросы