小编Iva*_*nov的帖子

我应该首先为视图层编写测试(遵循 TDD),还是只进行手动测试并在完成后添加快照测试?

正如预期的那样,在使用视图层遵循 TDD(即首先编写测试)时,我通常会遇到困难。

也就是说,为了观察或触发某些可见的更改(布局或样式),我需要公开视图的内部结构。这打破了封装并允许客户端代码执行诸如myView.label.text = "User".

为了避免这种情况,我要么向UIView类添加 getter 方法:

var userName: String{ return label.text }
Run Code Online (Sandbox Code Playgroud)

或者做一些仅添加到测试框架的扩展:

extension MyView{

//avoids making a getter just for the sake of testing, while keeping it private and interchangeable
var userName : String{
   return (viewWithTag(someLabelTage) as! UILabel).text
} 
Run Code Online (Sandbox Code Playgroud)

另一种方法是跳过 TDD 工作流程(即功能完成后手动测试)并添加快照测试(请参阅https://github.com/pointfreeco/swift-snapshot-testing)以增加覆盖率并具有安全性重构时.net。

考虑到这一切,我想知道是否有任何其他模式或方法可以用来提高效率,同时保持对代码的信心。

tdd uiviewcontroller uiview ios swift

2
推荐指数
1
解决办法
537
查看次数

标签 统计

ios ×1

swift ×1

tdd ×1

uiview ×1

uiviewcontroller ×1