我在集成測試中使用的TyphoonPatcher有問題。我正在使用KIF進行集成測試。有時我需要存儲http數據庫中負責保存數據的客戶端或類。最簡單的方法是使用TyphoonPatcher。如何重置由TyphoonPatcher修補的組件
比方說,我需要打補丁的補丁騎士的TestCase的一個存根騎士,對於所有的測試案例,所以我在beforeAll回調做這個
代碼負責修補組件:
MiddleAgesAssembly* assembly = [[MiddleAgesAssembly assembly] activate];
TyphoonPatcher* patcher = [[TyphoonPatcher alloc] init];
[patcher patchDefinitionWithSelector:@selector(knight) withObject:^id{
Knight* mockKnight = mock([Knight class]);
[given([mockKnight favoriteDamsels]) willReturn:@[
@"Mary",
@"Janezzz"
]];
return mockKnight;
}];
[assembly attachPostProcessor:patcher];
Knight* knight = [(MiddleAgesAssembly*) factory knight]
而現在在TestCase B中,我想要有清晰的應用程序狀態,沒有任何修補過的組件。
問題? B級騎士仍被替換爲其他模擬或殘肢類。
有沒有辦法從TestCase A恢復補丁?