【发布时间】:2019-07-10 00:31:34
【问题描述】:
我想修改某些函数的行为,而不是该函数的作者。我控制的是我可以要求作者遵循某种模式,例如使用基类,使用特定的装饰器、属性等。
如果在 python 中,我会使用装饰器来改变方法的行为。
例如,我的目标:通过自动测试多个输入数据来提高代码覆盖率。
伪代码:
@implementation SomeTestSuiteClass
// If in python, I would add a decorator here to change the behavior of the following method
-(void)testSample1 {
input = SpecialProvider();
output = FeatureToTest(input);
SpecialAssert(output);
}
@end
我想要什么:在测试期间,testSample1 方法将被多次调用。每次,SpecialProvider 都会发出不同的输入数据。 SpecialAssert 也一样,可以验证给定输入对应的输出。
SpecialProvider 和 SpecialAssert 将是我控制/拥有的 API(即我编写它们)。
SomeTestSuiteClass 和 testSample1 将由用户(即测试编写者)编写。
Objective-C 有没有办法实现上面的“我想要的”?
【问题讨论】:
标签: objective-c