带字符串的单元测试(Bloc Ios开发)
我目前正在进行bloc训练营,我需要一些代码方面的帮助。我需要让这些单元测试通过。下面是两个实现文件:对方法的更改将在StringCheeset.m中完成,而StringCheeseTests.m将显示失败。我只复制了一次失败,所以我可以完成其余的。在此方面的任何帮助都将不胜感激 StringCheeseTests.m StringCheese.m带字符串的单元测试(Bloc Ios开发),ios,objective-c,string,unit-testing,Ios,Objective C,String,Unit Testing,我目前正在进行bloc训练营,我需要一些代码方面的帮助。我需要让这些单元测试通过。下面是两个实现文件:对方法的更改将在StringCheeset.m中完成,而StringCheeseTests.m将显示失败。我只复制了一次失败,所以我可以完成其余的。在此方面的任何帮助都将不胜感激 StringCheeseTests.m StringCheese.m 好吧,如果我理解正确的话:您希望在FavoriteCheseString WithCheese:的实现中编写代码,以便它通过相关测试 你在这里需要做
好吧,如果我理解正确的话:您希望在
FavoriteCheseString WithCheese:
的实现中编写代码,以便它通过相关测试
你在这里需要做的是类似于解决一个迷宫,从终点开始,一路走到起点(至少我小时候一直是这样做的)
此外,您需要了解传递给以下对象的参数:
//当[a1 isEqual:a2]为假(或一个为零,另一个为非)时生成故障
XCTASERTEQUALOBJECTS(a1、a2、格式…)
从这里你可以得出,在这个例子中,a2
是我最喜欢的奶酪是意大利乳清干酪
,因此你需要确保a1
会给你这个字符串。。。也就是说,FavoriteCheseString WithCheese:
需要为您提供这一点
FavoriteCheseString WithCheese:
的方法签名接受一个字符串值并返回另一个字符串。通过测试,我们知道:
我最喜欢的奶酪是意大利乳清干酪
goat
作为参数传递应返回
我最喜欢的奶酪是山羊
My favorite cheese
,变量是参数cheeseName
。因此,为了让测试通过,您需要确保传入的NSString
被附加到常量NSString
中,然后返回该值。(请注意,大小写和空格很重要)
我希望这能回答你的问题,而不会泄露太多信息
编辑:扩展答案
StringCheese.m
中的方法如下所示:
(NSString *)favoriteCheeseStringWithCheese: (NSString *)cheeseName{
NSString *cheeseIntro = @"My favorite cheese is ";
NSString *favoriteCheeseIntro = [cheeseIntro stringByAppendingString: cheeseName];
return favoriteCheeseIntro;
}
因此,当您调用该方法时:
// declaring a variable
@property (nonatomic, strong) StringCheese *cheese;
// further down in the code
self.cheese = [[StringCheese alloc] init];
NSString *myFavoriteCheese = [self.cheese favoriteCheeseWithCheese:@"ricota"];
// myFavoriteCheese is now "My favorite cheese is ricotta"
嘿,路易斯,谢谢你的建议!我的主要问题是如何开始。也许问题在于我的语法或逻辑…或者两者兼而有之。关于StringCheese.m文件,您能给我任何其他提示吗?我是开发和objective-c的新手,这些作业的说明非常模糊。很难不透露完整的答案,因为它很短,但使用结果来指导代码的其余部分,这非常有帮助。现在我可以将一些东西与课程进行比较。谢谢你,伙计!很高兴我能帮忙。当你有时间的时候,你能投票并接受这个作为答案,如果它解决了你的问题吗?嘿,路易斯,我接受这个作为答案,但我得到一个错误,说我需要15个声誉。我对这一切都不熟悉,所以如果我还有其他事情需要做,请告诉我,我很乐意帮助你。
(NSString *)favoriteCheeseStringWithCheese: (NSString *)cheeseName{
NSString *cheeseIntro = @"My favorite cheese is ";
NSString *favoriteCheeseIntro = [cheeseIntro stringByAppendingString: cheeseName];
return favoriteCheeseIntro;
}
// declaring a variable
@property (nonatomic, strong) StringCheese *cheese;
// further down in the code
self.cheese = [[StringCheese alloc] init];
NSString *myFavoriteCheese = [self.cheese favoriteCheeseWithCheese:@"ricota"];
// myFavoriteCheese is now "My favorite cheese is ricotta"