Unit testing 在单元测试用例中重置模拟数据
我正在使用Rhino Mock,希望根据单元测试中传递的参数设置不同的数据。当我单独运行它们时,它们按预期运行,但是当我并行运行它们时,数据集一次不会改变,尽管if-else代码会执行Unit testing 在单元测试用例中重置模拟数据,unit-testing,rhino-mocks,web-api-testing,Unit Testing,Rhino Mocks,Web Api Testing,我正在使用Rhino Mock,希望根据单元测试中传递的参数设置不同的数据。当我单独运行它们时,它们按预期运行,但是当我并行运行它们时,数据集一次不会改变,尽管if-else代码会执行 public SetMockData(bool pass=true) { var jsonDataPass = "{\"results\":[{\"a\":\"12345\",\"StatusId\":
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, Arg<HttpMethod>.Is.Anything, Arg<StringContent>.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse<JToken>
{
Data = JObject.Parse(jsonDataPass),
Outcome = Success
}));
}
else
{
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(jsonDataFails),
Outcome = Success
}));
apiClient.Stub(x => x.ExecuteAsync<JToken>(Arg<string>.Is.Anything, Arg<string>.Is.Anything, Arg<HttpMethod>.Is.Anything, Arg<StringContent>.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse<JToken>
{
Data = JObject.Parse(jsonDataFails),
Outcome = Success
}));
}
IoCFactory.RegisterInstance(typeof(IApiClient), apiClient);
}
public SetMockData(bool pass=true)
{
var jsonDataPass=“{\'结果\”:[{\'a\':\'12345\,\'StatusId\':\'12\,\'Id\':\'30\,\'PrimaryId\':'1\';
var jsonDataFails=“{\'results\”:[{\'a\':\'12875\,\'StatusId\':\'13\,\'Id\':\'34\,\'PrimaryId\':'2\';
var apiClient=MockRepository.GenerateMock();
apiClient.Stub(x=>x.GetApiUrl(null,null)).IgnoreArguments().Return(“”);
如果(通过)
{
apiClient.Stub(x=>x.ExecuteAsync(Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse
{
Data=JObject.Parse(jsonDataPass),
结果=成功
}));
apiClient.Stub(x=>x.ExecuteAsync(Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse
{
Data=JObject.Parse(jsonDataPass),
结果=成功
}));
}
其他的
{
apiClient.Stub(x=>x.ExecuteAsync(Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse
{
Data=JObject.Parse(jsonDataFails),
结果=成功
}));
apiClient.Stub(x=>x.ExecuteAsync(Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything,Arg.Is.Anything)).IgnoreArguments().Return(Task.FromResult(new ServiceResponse
{
Data=JObject.Parse(jsonDataFails),
结果=成功
}));
}
IoCFactory.RegisterInstance(类型为(IapClient),ApicClient);
}
为什么要让模拟数据设置并行运行?这会带来各种各样的问题