【问题标题】:What's the difference between XCTAssert and XCTAssertTrue?XCTAssert 和 XCTAssertTrue 有什么区别?
【发布时间】:2014-07-19 15:06:28
【问题描述】:

XCTAssert 和 XCTAssertTrue 有什么区别?他们似乎在做同样的事情,如果是这样,我们为什么需要两者?

【问题讨论】:

  • 不同的语义。我在BOOLXCTAssert 上使用XCTAssertTrue/XCTAssertFalse 用于其他所有内容
  • @BryanChen 没有任何不同的语义。它们是 100% 相同的。
  • @matt 代码执行相同的事情并不总是意味着它们具有相同的语义。
  • @BryanChen XCTAssert 仍然意味着您断言其中的条件为真,所以从技术上讲,它与 XCTAssertTrue 具有相同的语义,不是吗?
  • @BryanChen 并不是它执行相同的操作。从字面上看,它是一回事。语义是相同的——它们是同义词。

标签: objective-c unit-testing xctest


【解决方案1】:

您认为这里存在冗余是正确的。事实上,它们绝对是相同的——也就是说,在底层它们都评估为同一个宏,_XCTPrimitiveAssertTrue

【讨论】:

  • 请参阅 XCTestAssertions.h 进行确认。
  • 嗯... DRY 不计入单元测试框架? ;-)
  • 功能等效的同义词确实为编写可读代码提供了灵活性。 XCTAssertTrue(someStateVariable) 受益于更详细的 XCTAssertTrueXCTAssert(a == b) 使用更紧凑的 XCTAssert 可以清楚地阅读。使用能提高语句可读性的那个。
  • 您应该考虑将XCTAssertEqual(a, b) 用于案例XCTAssert(a == b),因为XCTAssertEqual 可以提供更好的日志。
猜你喜欢
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
  • 2015-03-26
  • 2013-08-19
相关资源
最近更新 更多