在代码中使用可测试的自由函数

时间:2017-08-16 09:48:23

标签: ios swift tdd

我目前在app中使用了一些工作类,它只包含一个函数。

该函数执行类名称描述的操作:

protocol FooUpdatable {
  func updateFoo(with foo: SomeFoo)
}

class FooUpdater: FooUpdatable {
  let dependency: DependencyType

  init(dependency: DependencyType = ConcreteDependency()) {
    self.dependency = dependency
  }

  func updateFoo(with foo: SomeFoo) {
    ...
  }
}

我认为其中一些应该是自由函数,而不是一个类 - 但当前架构的一个好处是可测试性。 在测试中,我可以通过构造函数注入替换模拟的依赖关系,但我不确定如何使用自由函数做到这一点。

func updateFoo(with foo: SomeFoo, dependency: DependencyType = ConcreteDependency() {
  ...
}

在Objective-C中,模拟框架可以通过调整来实现吗?什么方式在Swift中完成同样的事情?

0 个答案:

没有答案