2016-02-03 71 views
0

你如何编写swift嵌套函数的测试?如何测试swift嵌套函数?

由于该函数是在另一个函数内,我不知道如何从外部调用它。

我使用嵌套函数,因为我不能在初始化调用一个私有的自我功能

回答

4

你不应该测试嵌套函数,就像你不应该测试私有方法,从Bad Testing Practices

私人表示私人。期。如果您觉得需要测试私有方法,那么该方法在概念上有些问题。通常,做一个私人方法太过分了,这又违反了单一责任原则。

2

继续从代码的不同点,从一个测试点,下面的代码是相同的:

// Without nesting 
func f() { 
    // Do things 
    // Do other things we want to test 
    // Do more things 
} 

// With nesting 
func fnest() { 
    func nest() { 
     // Do other things we want to test 
    } 

    // Do things 
    nest() 
    // Do more things 
} 

无论技术,你会用它来测试“难道我们要测试的其他东西”在f()与您在fnest()中用于测试的技术完全相同。如果您想要测试的作品无法访问,无论哪种情况,您都必须重新设计(或更改您的测试目标),但嵌套函数没有特别之处。

我使用嵌套函数,因为我不能把私人的自我功能的init

如果这是整个问题,然后进行功能的静态和纯净。传递self,而不是通过执行计算所需的数据,并返回结果。然后在init内部修改self而不是在函数中。