带字符串的单元测试(Bloc Ios开发)

带字符串的单元测试(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:的实现中编写代码,以便它通过相关测试 你在这里需要做

我目前正在进行bloc训练营,我需要一些代码方面的帮助。我需要让这些单元测试通过。下面是两个实现文件:对方法的更改将在StringCheeset.m中完成,而StringCheeseTests.m将显示失败。我只复制了一次失败,所以我可以完成其余的。在此方面的任何帮助都将不胜感激

StringCheeseTests.m StringCheese.m
好吧,如果我理解正确的话:您希望在
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"