2010-05-07 2 views
1

Я новичок в использовании теста Mock в .Net.
Я тестируя финансовую операцию, которая из следующего характера:
Свойства объектов Mock не меняются

int amt =20; 
//sets all the props and func and returns a FinaceAccount. 
//Note I did not SetUp the amt of the account. 
var account =GetFinanceAccount() 


//service layer to be tested 
_financeService.tranx(account,amt); 

//checks if the amt was added to the account.amt 
//here the amt comes out same as that set in GetFinanceAccount. 
Assert.AreEqual(account.amt ,amt) 

Я знаю, что функция tranx работает правильно, но есть проблема с тестом. существует ли справочный материал по Дразнящему в .Net

+0

Как вы издеваетесь? И какие рамки вы используете? – driis

+0

Какие рамки вы используете? И можете ли вы включить код настройки макета? –

+0

Я использую Moq.Mock для насмешек. Код макетного кода выглядит следующим образом: var financeAccount = new Mock (); financeAccount.SetupGet (x => x.Id). Возвраты (id); financeAccount.SetupGet (x => x.Name). Возвраты ("A"); financeAccount.Setup (x => x.Validate()). Возвращает (true); Существует довольно много настроек параметров, но свойство amt не настроено в методе установки GetFinanceAccount()
frictionlesspulley

ответ

2

Это происходит потому, что, когда вы делаете SetupGet, вы, по сути говоря: «При вызове этого свойства всегда возвращает это значение». То, что вы хотите сделать, это, вероятно, «SetupProperty», который делает все свойства на издеваемом объекте, как нормальные свойства, с поведением get/set.

Mock<Account> mockAccount = new Mock<Account>(); 
    mockAccount.SetupProperty(mock => mock.amt); 
    // Perhaps set a initial value 
    mockAccount.Object.amt = 10; 
0

Я предлагаю вам подключить ваши модульные тесты для визуальной студии перейти к свойствам и выберите отладки затем нажмите кнопку Пуск внешнюю программу и выберите nunit.exe затем в аргументы добавить полный путь к DLL в карте отладки вашего проекта тестов. Это позволит вам отлаживать ваши тесты и проходить через все. Теперь вы можете видеть, что происходит не так.

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