微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在单元测试用例中重置模拟数据

如何解决在单元测试用例中重置模拟数据

我正在使用 Rhino Mock 并希望根据单元测试中传递的参数设置不同的数据。当我单独运行它们时,它们会按预期运行,但是当我并行运行它们时,即使执行 if-else 代码,数据集也不会改变。

public SetMockData(bool pass=true)
    {
       var jsonDataPass = "{\"results\":[{\"a\":\"12345\",\"StatusId\":\"12\",\"Id\":\"30\",\"PrimaryId\":\"1\"}";
       var jsonDataFails = "{\"results\":[{\"a\":\"12875\",\"StatusId\":\"13\",\"Id\":\"34\",\"PrimaryId\":\"2\"}";

      var apiclient = MockRepository.GenerateMock<Iapiclient>();
      apiclient.Stub(x => x.GetApiUrl(null,null)).IgnoreArguments().Return("");
      if (pass)
      {
        apiclient.Stub(x => x.ExecuteAsync<JToken>(Arg<string>.Is.Anything,Arg<HttpMethod>.Is.Anything,Arg<StringContent>.Is.Anything)).IgnoreArguments().Return(Task.Fromresult(new ServiceResponse<JToken>
        {
          Data = JObject.Parse(jsonDataPass),Outcome = Success
        }));
        apiclient.Stub(x => x.ExecuteAsync<JToken>(Arg<string>.Is.Anything,Arg<string>.Is.Anything,Outcome = Success
        }));
      }
      else
      {
        apiclient.Stub(x => x.ExecuteAsync<JToken>(Arg<string>.Is.Anything,Arg<StringContent>.Is.Anything)).IgnoreArguments().Return(Task.Fromresult(new ServiceResponse<JToken>
        {
          Data = JObject.Parse(jsonDataFails),Outcome = Success
        }));
      }
      IoCFactory.RegisterInstance(typeof(Iapiclient),apiclient); 
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。