2013-09-15 3 views
0

Я новичок в использовании Moq и имеет некоторые логические проблемы atm.Moq .net в вызове метода класса

У меня есть класс с двумя методами этого в этом методе один класс вызывает метод два типа:

public class TestClass 
{ 
    public virtual string FindUser(string user) 
    { 
    //do some Stuff 
    string check = UserCheck("some string to check"); 
    //do some stuff 
    return "some other userstring"; 
    } 

    protected virtual string UserCheck(string blubb) 
    { 
    //do some other stuff 
    return "some string"; 
    } 
} 

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

Я не знаю, как это сделать с помощью Moq, потому что мне нужен Moq мой собственный класс, что я тестирую. Я нашел это как "solution",

, но это не решение для меня (я думаю), потому что я пытаюсь инкапсулировать некоторые функциональные возможности только в другой функции. Это неправильно, что я делаю, или мне нужно каждый раз создавать новый класс для инкапсуляции одной функции?

ответ

1

Если реализация не использует другой класс внутри вызова метода, то, вероятно, нет необходимости использовать издеваться. Не имеет смысла издеваться над реализацией (события некоторой ее частью), которую вы тестируете. Если вы считаете, что он становится слишком сложным, инкапсулируйте некоторые его части внутри другого класса и используйте его как зависимость.

0

Вы делаете это неправильно. Вы не должны мочить ваш SUT beacause, так что вы усложняете вещи и не проверяете правильную вещь. Вы должны использовать moq (или любую другую фальшивую фреймворк), чтобы издеваться над соавтором из вас SUT.

Так что в вашем случае вы можете протестировать FindUser без насмешливого UserCheck ... так как этот метод необходим для завершения работы.

НТН

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