【问题标题】:Testing factory methods iOS测试工厂方法 iOS
【发布时间】:2019-01-08 20:10:18
【问题描述】:

我应该采取什么方法来为创建其他对象的工厂编写单元测试?我见过的测试会简单地初始化两个PeriodicNotifications 和assert,它们是相等的对象。也许还将PeriodicNotification 属性与通知属性进行比较,以测试PeriodicNotification 是否正确解析?

我面临的主要挑战是知道要测试什么。

【问题讨论】:

  • PeriodicNotification 是 NSDictionary 的子类吗?
  • @danh 是的,它是typedef
  • 我对您提出的测试问题有一个选择,但也有一种本能,即首先对字典的子类化持怀疑态度,并且反对这种方法的编码方式。我会尝试将所有这些都纳入答案。
  • @danh 谢谢,我想说“不”它是typedefPeriodicNotification 只是一个别名,为了便于阅读,它实际上并不是一个子类。
  • 哦,你能更全面地介绍一下这门课吗?我来答题

标签: ios objective-c unit-testing


【解决方案1】:

单元测试的范围可能非常有限,几乎仅限于被测试事物的意图。对于返回实例的类方法,单元测试问题是:我是否得到了按预期初始化的类实例?

OP 案例中的测试可能是:

PumpNotification *pumpNotification = // stub object
PeriodicNotification *periodicNotification = [PeriodicNotification nodeFromNotification: pumpNotification];

// do I have an instance?
assert([periodicNotification isMemberOfClass:[PeriodicNotification self]])
assert([node[kJSON_type] isEqual:/*value from stub object*/])
// and so on for other values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2017-04-13
    • 2017-08-12
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多