8

Moq.MockRepository.Of() と Moq.MockRepository.OneOf() の適切な使用法は何ですか? 私はそれを理解しようとするためにこのようなことを試みました。

var mr = new MockRepository(MockBehavior.Strict);
var m = mr.Of<ISomeInterface>();
foreach (var obj in m)
    cnt++;

cnt が無限に増加し続けることがわかりました。何を与える?これに関するドキュメントは近日公開されません。

4

1 に答える 1

11

Moq.MockRepository.Of()式を介してモックを作成するために使用できます。これは、例によって最もよく説明されています。

public interface ITest
{
    String Say();
    Int32 DoSomething(Int32 a, Int32 b);
}

class Program
{
    public static void Main()
    {
        var repo = new MockRepository(MockBehavior.Strict);
        var mock = repo.Of<ITest>()
                       .Where(s => s.Say() == "Hi!")
                       .Where(s => s.DoSomething(5, 4) == 20)
                       .Where(s => s.DoSomething(4, 5) == 9)
                       .Where(s => s.DoSomething(It.IsAny<Int32>(), 7) == 99)
                       .First();

        Console.WriteLine(mock.Say());                 // prints Hi!
        Console.WriteLine(mock.DoSomething(5, 4));     // prints 20
        Console.WriteLine(mock.DoSomething(4, 5));     // prints 9
        Console.WriteLine(mock.DoSomething(23423, 7)); // prints 99
        Console.WriteLine(mock.DoSomething(0, 0));     // Fail due to MockBehavior.Strict

        Console.ReadKey();
    }
}
于 2012-05-18T08:37:56.593 に答える