1
我想用一个撤消管理器测试一些代码,但显然,撤消的时候在同一个运行循环中运行时分组。我试图关闭groupsByEvent,但它不能按预期工作。单元测试与NSUndoManager,Runloop - Obj-C
- (NSString *)article
{
return _article == nil ? @"no article" : _article;
}
- (void)setarticle:(NSString *)article
{
if (_undoManager)
{
[(ModelGraph *)[_undoManager prepareWithInvocationTarget:self] setarticle:self.article];
[_undoManager setActionarticle:@"undo set article"];
}
NSCharacterSet *charactersToRemove = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
article = [[article componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@""];
_article = article;
}
,并在我的测试,我有:
undoManager = [[NSUndoManager alloc] init];
myObject.undoManager = undoManager;
[myObject setArticle:@"Article 1"];
[myObject setArticle:@"Article 2"];
[myObject setArticle:@"Article 3"];
[myObject setArticle:@"Article 4"];
[undoManager undo];
NSLog(@"myObject.article: %@", [myObject article]); //prints noarticle
但代码运行时,我总是回来:“没有了” - 当撤消发生时,它总是运行所有撤消的背...因为它们是在同一个循环中添加的。
我只想测试我的撤消是否正在进行测试......和想法?
也许强迫运行循环在每次更改后触发?更改运行循环模式?
任何帮助欢迎。
谢谢,克里斯