Надеюсь, вы знаете, потому что я этого не вижу. Бонусные очки для тех, кто выясняет, как можно достичь того, чего пытается достичь этот тест.
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();
}
}
Оказывается, это была ошибка пилот-сигнала. Я неправильно предположил, что Moq отлично работает на Mono. (что похоже на то, что все отлично). Эта проблема возникает только при компиляции с помощью mono gmcs, а не при компиляции с помощью Microsoft csc.
Я сообщал о соответствующих ошибках с командой mono и продолжаю следить за тем, чтобы полный тестовый пакет Moq прошел при компиляции с помощью mono gmcs.exe
Извините за шум.
Лукас
Это не воспроизводится с последней версией из trunk (3.0 beta)
Извините, что недостаточно ясна. То, что я тестирую, действительно то, что Mock ведет себя так, как я ожидал. Для меня тест выше не подходит. Я очень удивлен, услышав, как это проходит за вас. Я запускаю тест в VisualStudio 2008. Я только что обновился до Moq 2.6, и тест все еще терпит неудачу. Какую версию Moq вы используете, с которой проходит этот тест?
Этот тест отлично работает.
Поскольку нет тестируемой системы, вы проверяете, что moq работает как ожидалось.