2016-02-08 4 views
0

Как я могу выполнить следующее: он возвращает новый Guid();Mo0 item from session

private void CheckSomething(){ 
... 
    user = CustomerContext.Current.User; // returns Guid 

CustomerContext берется из сторонней библиотеки и не вводится в мой класс.

есть ли способ сделать это?

+0

Необходимо создать обертку этой сторонней библиотеки. – CodeNotFound

+0

Похоже, он должен быть введен в класс, чтобы его можно было насмехаться. (Возможно, завернутый в интерфейс, в зависимости от того, насколько он макет.) В основном, ваше тестирование устройства указывает вам, что код связан с зависимостью. Это должно быть исправлено. – David

+0

Как создать обертку? – ShaneKm

ответ

1

Я сделал это.

public class UserContextWrapper : ICustomUserContext 
{ 
    public Guid UserGuid 
    { 
     get { return CustomerContext.Current.User; } 
    } 
} 

Тогда в моем коде я должен был изменить оригинал:

private void CheckSomething(){ 
... 
    user = UserContextWrapper.UserGuid ; // returns Guid 

Теперь я могу издеваться. Я просто вводя ICustomerUserContext в свой класс, и я сопоставил UserContextWrapper с ICustomUserContext в контейнере IoC.

+0

как вы предоставляете свою реализацию 'UserContextWrapper' из своего класса? – Kritner

+0

Да, это правильно. – CodeNotFound