【问题标题】:TypeMock - faking Console.Error.WriteLine()TypeMock - 伪造 Console.Error.WriteLine()
【发布时间】:2015-05-06 16:10:31
【问题描述】:

我正在尝试使用 TypeMock 伪造控制台输出日志记录:

[Test]
public void Log_Error_LogsToStdErr()
{
    var logger = SetupFakeLogger();

    logger.Log( "text to log", true );

    Isolate.Verify.WasCalledWithAnyArguments( () => logger.LogToFile( "" ) );
    Isolate.Verify.WasCalledWithAnyArguments( () => Console.Error.WriteLine( "" ) );
}

private static WrapperLogger SetupFakeLogger()
{
    Isolate.Fake.StaticMethods( typeof(Console), Members.ReturnRecursiveFakes );

    Isolate.WhenCalled( () => Console.Error.WriteLine( "" ) ).IgnoreCall();    

    return Isolate.Fake.Instance<WrapperLogger>( Members.CallOriginal, ConstructorWillBe.Called, "dir", "file.log" );
}

但是,我在第二个断言中遇到以下异常(为 Console.Error.WriteLine调用 Isolate.Verify >):

TypeMock Verification: Method System.Environment.NewLine was expected but was not called

这是某种错误,还是我做错了?

【问题讨论】:

    标签: c# unit-testing typemock


    【解决方案1】:

    免责声明我在 Typemock 工作。

    我们不支持伪造Console,请查看我们的supported fakeable mscorlib types

    您可以使用TextWriter 代替控制台,它会起作用。

    查看示例:

     [TestMethod]
            public void Log_Error_LogsToStdErr()
            {
                var logger = SetupFakeLogger_Works();
    
                logger.Log("text to log", true);
    
                Isolate.Verify.WasCalledWithAnyArguments(() => logger.LogToFile(""));
                //Isolate.Verify.WasCalledWithAnyArguments(() => Console.Error.WriteLine(""));
            }
    
            private static WrapperLogger SetupFakeLogger_Works()
            {
                var textWriter = Isolate.Fake.Instance<TextWriter>();
                Console.SetOut(textWriter);
    
                return Isolate.Fake.Instance<WrapperLogger>(Members.CallOriginal, ConstructorWillBe.Called, "dir", "file.log");
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2021-10-08
      • 2020-11-03
      相关资源
      最近更新 更多