1

実行するために必要な手順があるサービス関数があります。Rhino Mocks を何度も試してみましたが、うまくいきませんでした。私はそれをテストに合格させることはできません。

質問は、これをテストする最良の方法は何ですか? コードのリファクタリングは必要ですか?

どんな助けでも大歓迎です。どうもありがとう。

public class Service : IService
{
    public void Initialize()
    {
        Function1();
        Function1();
        Function1();
    }

    public void Function1() {}
    public void Function2() {}
    public void Function3() {}

}

public interface IService
{
    void Initialize();
    void Function1();
    void Function2();
    void Function3();
}

[Test]
public void Test1
{
    var mockService = MockRepository.GenerateMock<OfficePrinterService>();

    mockService.Initialize();

    // Test will Error Here.
    // No expectations were setup to be verified, ensure that the method call in the action is a virtual (C#) / overridable (VB.Net) method call
    mockService.AssertWasCalled(x=>x.Function1());
    mockService.AssertWasCalled(x=>x.Function2());
    mockService.AssertWasCalled(x=>x.Function3());
}

[Test]
public void Test2
{
    var mockService = MockRepository.GenerateMock<IOfficePrinterService>();

    mockService.Initialize();

    // Test will Error Here.
    // Rhino.Mocks.Exceptions.ExpectationViolationException : IService.Function1(); Expected #1, Actual #0.
    mockService.AssertWasCalled(x=>x.Function1());
    mockService.AssertWasCalled(x=>x.Function2());
    mockService.AssertWasCalled(x=>x.Function3());
}
4

1 に答える 1