为什么必须将view属性分配给变量?

劳伦斯·温戈(Laurence Wingo)

在以下代码中,如果我注释掉分配给view属性的变量,则测试将失败。我所指的行是:

_=sut.view

但是,如果不注释该行代码,则测试将通过。为什么甚至有必要?

这是完整的单元测试:

import XCTest
@testable import ToDo

class ItemListViewControllerTests: XCTestCase {

    var sut:ItemListViewController!

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        sut = storyboard.instantiateViewControllerWithIdentifier("ItemListViewController") as! ItemListViewController

        _=sut.view

    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }
    func test_TableViewIsNotNilAfterViewDidLoad(){
        XCTAssertNotNil(sut.tableView.dataSource)
        XCTAssertTrue(sut.tableView.dataSource is ItemListDataProvider)

    }

    func testViewDidLoad_ShouldSetTableViewDelegate(){
        XCTAssertNotNil(sut.tableView.delegate)
        XCTAssertTrue(sut.tableView.delegate is ItemListDataProvider)
    }

    func testViewDidLoad_ShouldSetDelegateAndDataSourceToSameObject(){
        XCTAssertEqual(sut.tableView.dataSource as? ItemListDataProvider, sut.tableView.delegate as? ItemListDataProvider)
    }


}

在第一次view访问属性之前,视图控制器不会加载其视图,因此将view赋给变量将加载它。

如果没有加载视图则没有网点将被迷上了这样sut.tableView就会nil和你的测试将会失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么必须将类型谓词的类型分配给其参数的类型?

来自分类Dev

必须将函数sscanf分配给变量,否则会有奇怪的行为

来自分类Dev

为什么将变量分配给'textContent'元素必须在页面底部?

来自分类Dev

为什么分配给与本地变量同名的类属性会引发NameError?

来自分类Dev

为什么我可以将具有未知属性的文字分配给 {} 类型的变量

来自分类Dev

为什么不能使用方括号符号+变量将属性分配给对象?

来自分类Dev

为什么将 div 标记的 innerHTML 属性分配给变量时它不会改变?

来自分类Dev

为什么在Angular中将函数分配给变量

来自分类Dev

为什么我分配给变量的值消失了?

来自分类Java

为什么将新的ArrayList分配给List变量?

来自分类Dev

Firebase:为什么将 Firestore .onSnapshot 分配给变量?

来自分类Dev

在Kotlin中分配给变量的Lambda。为什么?

来自分类Dev

为什么分配给这个零的变量的值是2

来自分类Dev

为什么“ this”应分配给jQuery中的变量?

来自分类Dev

为什么不能直接将此值分配给变量?

来自分类Dev

如果{{}}没有分配给变量的字段,为什么没有显示分配给该变量的字段?

来自分类Dev

将具有超出属性的对象分配给变量时,TypeScript为什么不显示错误?

来自分类Dev

将实体属性分配给变量

来自分类Dev

为什么shared_ptr <>必须分别分配给控制块和托管对象?

来自分类Dev

netty:为什么必须在分配给通道的Eventloop线程中执行write()?

来自分类Dev

为什么将查询计数分配给变量比直接检查变量要好?

来自分类Dev

为什么更新一个变量也会更新分配给它的变量?

来自分类Dev

为什么他们的顺序是将新变量分配给现有变量

来自分类Dev

为什么要教我们将document.getElementById(“ id”)分配给变量,然后将该变量与属性一起使用?

来自分类Dev

将对象分配给属性或分配给属性之间有什么区别?

来自分类Dev

为什么将数据分配给变量时计算会更改数据?

来自分类Java

为什么不能将方法引用直接分配给Object类型的变量?

来自分类Dev

为什么每种方法都要求将其循环的值分配给变量?

来自分类Dev

为什么我将数据直接分配给 MutableState 变量?

Related 相关文章

  1. 1

    为什么必须将类型谓词的类型分配给其参数的类型?

  2. 2

    必须将函数sscanf分配给变量,否则会有奇怪的行为

  3. 3

    为什么将变量分配给'textContent'元素必须在页面底部?

  4. 4

    为什么分配给与本地变量同名的类属性会引发NameError?

  5. 5

    为什么我可以将具有未知属性的文字分配给 {} 类型的变量

  6. 6

    为什么不能使用方括号符号+变量将属性分配给对象?

  7. 7

    为什么将 div 标记的 innerHTML 属性分配给变量时它不会改变?

  8. 8

    为什么在Angular中将函数分配给变量

  9. 9

    为什么我分配给变量的值消失了?

  10. 10

    为什么将新的ArrayList分配给List变量?

  11. 11

    Firebase:为什么将 Firestore .onSnapshot 分配给变量?

  12. 12

    在Kotlin中分配给变量的Lambda。为什么?

  13. 13

    为什么分配给这个零的变量的值是2

  14. 14

    为什么“ this”应分配给jQuery中的变量?

  15. 15

    为什么不能直接将此值分配给变量?

  16. 16

    如果{{}}没有分配给变量的字段,为什么没有显示分配给该变量的字段?

  17. 17

    将具有超出属性的对象分配给变量时,TypeScript为什么不显示错误?

  18. 18

    将实体属性分配给变量

  19. 19

    为什么shared_ptr <>必须分别分配给控制块和托管对象?

  20. 20

    netty:为什么必须在分配给通道的Eventloop线程中执行write()?

  21. 21

    为什么将查询计数分配给变量比直接检查变量要好?

  22. 22

    为什么更新一个变量也会更新分配给它的变量?

  23. 23

    为什么他们的顺序是将新变量分配给现有变量

  24. 24

    为什么要教我们将document.getElementById(“ id”)分配给变量,然后将该变量与属性一起使用?

  25. 25

    将对象分配给属性或分配给属性之间有什么区别?

  26. 26

    为什么将数据分配给变量时计算会更改数据?

  27. 27

    为什么不能将方法引用直接分配给Object类型的变量?

  28. 28

    为什么每种方法都要求将其循环的值分配给变量?

  29. 29

    为什么我将数据直接分配给 MutableState 变量?

热门标签

归档