iOS单元测试和UI测试全面解析(7)

发表于:2017-03-31来源:51CTO作者:朱先忠点击数: 标签:单元测试iOS
XCTAssertEqual(gameUnderTest.scoreRound,95, Scorecomputedfromguessiswrong ) } 测试方法的名称总是以test开头,后面跟着的是对它要测试的内容的说明。 一个推荐的做法是把
 
  •   XCTAssertEqual(gameUnderTest.scoreRound, 95, "Score computed from guess is wrong"
  • 测试方法的名称总是以test开头,后面跟着的是对它要测试的内容的说明。

    一个推荐的做法是把测试方法格式化成given、when和then等几部分︰

    1. 在given部分中,设置所需的任何值。在此示例中,您创建一个猜测值,以便可以指定它与targetValue值区别多大。

    2. 在when部分中,执行被测试代码——调用方法gameUnderTest.check(_:)。

    3. 在then部分中,断言你期望的结果(在现在情况下,gameUnderTest.scoreRound的值是100-5):如果测试失败则打印对应的消息。

    现在,你可以单击测试导航器或者代码左边的钻石图标按钮运行测试。你会注意到应用程序将进行构建并运行起来,最后钻石图标将更改为一个绿色的对号标记!

    【注意】若要查看XCTestAssertions的完整列表,你可以在按下Command键的同时单击代码中的XCTAssertEqual打开文件XCTestAssertions.h。此外,你还可以参考苹果官方网站提供的按类别提供的断言列表

    (https://developer.apple.com/library/prerelease/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html#//apple_ref/doc/uid/TP40014132-CH4-SW35)。

    另外,上述测试中的Given-When-Then结构来源于行为驱动测试(Behavior Driven Development,简称BDD)中的易于理解的行业术语。其实,你还可以使用另外一些命名系统,例如Arrange-Act-Assert和Assemble-Activate-Assert,等等。

    原文转自:http://mobile.51cto.com/iphone-535758.htm