如何模拟类变量

时间:2019-07-20 07:52:29

标签: c# .net .net-core moq xunit

我正在使用xUnit和Moq编写测试用例。

当前,我正在为遥测类编写测试用例。

concurrent.futures

在Test类中,我该如何模拟关键变量。我曾经为模拟方法编写以下代码。

 public  class TelemetryClientMock : ITelemetryClientMock
    {
       public string key { get; set; } //I want to mock key variable.
        private TelemetryClient telemetry;  
        public TelemetryClientMock( )
        {
            telemetry = new TelemetryClient() { InstrumentationKey = key };
        }



        public void TrackException(Exception exceptionInstance, IDictionary<string, string> properties = null)
        {

              telemetry.TrackException(exceptionInstance, properties);
        }

        public void TrackEvent(string eventLog)
        {
            telemetry.TrackEvent(eventLog);
        }

    }

如何模拟变量。

1 个答案:

答案 0 :(得分:3)

您可以根据需要使用SetupSetupPropertySetupGet来实现:

mockTelemetryClient.Setup(x => x.key).Returns("foo");

mockTelemetryClient.SetupProperty(x => x.key, "foo");

mockTelemetryClient.SetupGet(x => x.key).Returns("foo");

正如Alves RC所指出的,假定key接口中存在ITelemetryClientMock属性。