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

问题描述

我正在使用 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 (将#修改为@)