исключение mock.record - PullRequest
       22

исключение mock.record

1 голос
/ 22 апреля 2011

Я использую mock.record(), и я проверяю длину имени файла .. Тестовый код:

        MockRepository mock = new MockRepository();
        IExtension ext = mock.StrictMock<IExtension>();

        using (mock.Record())
        {
            ext.LogError("filename not valid");
        }

        LogAnalyser log = new LogAnalyser(ext);
        string shortfilename = "jjh.df";
        log.IsValid(shortfilename);
        mock.Verify(ext);

и производственный код:

    public void IsValid(string filename)
    {
        if(filename.Length<8)
        {
            extension.LogError("filename is short:" + filename);
        }
    }

Вкл.при отладке extension.logerror в рабочей среде дает исключение:

IExtension.LogError("filename is short:jjh.df"); Expected #0, Actual #1.
IExtension.LogError("filename not valid"); Expected #1, Actual #0.

, пожалуйста, предоставьте какое-нибудь решение.

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Ошибка LogError более одного раза.Добавьте следующее:

ext.LogError ("имя файла недействительно"). IgnoreArguments (). Repeat.Any ();

Я не уверен на 100%, есливам нужно

0 голосов
/ 26 апреля 2011

Вы используете StrictMock, что означает, что разрешены только вызовы, специально настроенные вами, и это включает в себя значения параметров.Вы устанавливаете ожидание того, что в LogError будет сделан вызов со строкой:

filename not valid

Но что на самом деле произошло во время выполнения, так это вызов, сделанный со строкой:

filename is short:jjh.df

ТакRhino.Mocks дает вам два исключения (одно, потому что он обнаружил вызов, который не ожидался, и другое, потому что ожидаемый вызов не был найден).

@ Ответ Ivo об использовании «IgnoreArguments» должен работать.Если это не так, пожалуйста, включите более подробную информацию о том, какие версии .NET и Rhino.Mocks вы используете.

...