Почему этот тест NUnit + Moq не проходит? - PullRequest
2 голосов
/ 27 января 2009

Надеюсь, ты знаешь, потому что я этого не вижу. Бонусные баллы для тех, кто выясняет, как можно достичь того, чего пытается достичь этот тест.

using NUnit.Framework;
using Moq;

[TestFixture]
public class MoqHuh
{
    public class A {}
    public class B : A {}

    public interface IHelper
    {
        void DoIt(A a);
    }

    [Test]
    public void Huh()
    {
        var mock = new Mock<IHelper>();
        mock.Expect(helper => helper.DoIt(It.IsAny<B>())).Verifiable();

        mock.Object.DoIt(new B());

        mock.VerifyAll();
    }
}

Ответы [ 4 ]

4 голосов
/ 03 февраля 2009

Оказывается, это была ошибка пилота. Я неправильно предположил, что Moq отлично работает на Mono. (который выглядит так, как будто это прекрасно). Эта проблема возникает только при компиляции с моно gmcs, а не при компиляции с Microsoftsscts.

Я сообщил о соответствующих ошибках с командой mono и продолжу следить за тем, чтобы полный набор тестов Moq проходил при компиляции с моно gmcs.exe

Извините за шум.

Lucas

0 голосов
/ 27 января 2009

Извините за недостаточную ясность. Что я тестирую, так это то, что Mock ведет себя так, как я и ожидал. Для меня тест выше не проходит. Я очень удивлен, услышав, что это проходит для вас. Я запускаю тест в VisualStudio 2008. Я только что обновился до Moq 2.6, и тест все равно не прошел. Какую версию Moq вы используете, с которой этот тест проходит?

0 голосов
/ 30 января 2009

Это не воспроизводится с последней версией из ствола (3.0 бета)

0 голосов
/ 27 января 2009

Этот тест работает отлично.

Поскольку нет тестируемой системы, вы тестируете, что moq работает как положено.

...