2015-08-19 4 views
-1

Я использую Visual Studio 2013 и MsTest для модульного теста и Rhino Mocks для издевательств над объектом.Как издеваться над другим объектом класса с использованием Rhino Mocks

Есть ли способ, мы можем высмеивать других объект класса

public class Organization 
{ 
    public DataSet GetUsers() 
    { 
     DataSet ds = new DataSet(); 

// Added some columns and rows here 
// This class is interacting with the database. That's why I want to create 
// mock of this class. 

     return ds; 
    } 
} 

Мой Главный класс, как показано ниже

public class Users 
{ 
    public DataSet GetUsers(Organization org) 
    { 
     DataSet ds = org.GetUsers(); 

     return ds; 
    } 
} 

Мой метод испытания, как показано ниже

[TestMethod] 
public void GetUsersTest() 
{ 
    DataSet ds = new DataSet(); 
    //added some mock rows and columns to this dataset 

    var objOrg = MockRepository.GenerateMock<Organization>(); 
    objOrg.Expect(x => x.GetUsers()).Return(ds); 

    Users obj = new Users(); 
    DataSet dsResult = obj.GetUsers(objOrg); 
} 

Это давая мне ошибку. Может ли кто-нибудь помочь мне написать модульный тест для метода GetUsers выше класса, пожалуйста?

+0

И какие ошибки, которые могли бы быть? – hiergiltdiestfu

+0

Вы можете делать издевательства только для абстрактных классов и интерфейсов. –

+0

@DimitarTsonev он может высмеять не абстрактный класс. Проблема в том, что метод GetUsers не является виртуальным методом ... –

ответ

0

Ваш метод не является методом virtual. Когда вы издеваетесь над классом с использованием RhinoMocks, каждый метод, который вы хотите переопределить, должен быть virtual.

Изменить метод:

public virtual DataSet GetUsers() 
{ 
    DataSet ds = new DataSet(); 

     // Added some columns and rows here 
     // This class is interacting with the database. That's why I want to create 
     // mock of this class. 

    return ds; 
} 
+0

Привет, старый фокс, Есть ли другой способ я могу издеваться над методом GetUsers класса организации? – Dream

+0

@ Не используйте средства прокси-сервера, такие как 'RhinoMocks' или' Moq'. Вам нужны специальные инструменты, такие как [TypeMock Isolator] (http://www.typemock.com/isolator-product-page), [MsFakes] (https://msdn.microsoft.com/en-us/library/hh549175. aspx) и т. д. –

+0

Если у вас есть какая-либо ссылка, можете ли вы предоставить ее мне, пожалуйста? – Dream

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

  • Нет связанных вопросов^_^