2012-02-14 2 views
0

Я новичок в этом, поэтому, без сомнения, я делаю что-то глупое.Ошибка при создании моего первого объекта Mock

Я пытаюсь создать фиктивный объект:

mockCurrencyConversion = mocks.NewMock<ICurrencyConversion>(); 

и получаю эту ошибку:

The non-generic method 'NMock2.Mockery.NewMock(System.Type)' cannot be used with type arguments

ICurrencyConversion:

public interface ICurrencyConversion 
{ 
    decimal convertCurrency(string fromCurrency, string toCurrency, decimal amount); 

    int addNumbers(int i, int j); 

    decimal getRate(CurrencyRateResponse rates, string fromCurrency); 

    CurrencyRateResponse getCurrencyRates(); 

    HttpWebRequest GetWebRequest(string formattedUri); 
} 

Мой Тест Код:

[TestFixture] 
public class WhygoTest 
{ 
    private Mockery mocks; 
    private ICurrencyConversion mockCurrencyConversion; 

    [SetUp] 
    public void SetUp() 
    { 
     mocks = new Mockery(); 
     mockCurrencyConversion = mocks.NewMock<ICurrencyConversion>(); 

    } 

    [Test] 
    public void MyAddTest() 
    { 
     var cc = new CurrencyConversion(); 

     Assert.AreEqual(cc.addNumbers(1, 2), 3); 
    } 
} 
+0

ошибка, кажется, совершенно ясно для меня! В нем говорится, что вы не можете передавать аргументы типа этому методу, и вместо этого он принимает параметр типа 'System.Type'. Вы пробовали это? –

ответ

1

Используйте NewMock() метод с типом в качестве аргумента:

mockCurrencyConversion = 
    (ICurrencyConversion) mocks.NewMock(typeof(ICurrencyConversion)); 
+0

спасибо за это, теперь я получаю сообщение об ошибке - Невозможно неявно преобразовать тип 'object' в 'ICurrencyConversion'. Явное преобразование существует (вы пропускаете листинг?) – iKode

+0

Вы можете явно использовать 'ICurrencyConversion', используя обновленный код в моем ответе. –

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