草庐IT

unit-testing - 单元测试和私有(private)变量

我正在为公共(public)方法编写BDD单元测试。该方法更改了一个私有(private)属性(privatevar),所以我想编写一个expect()并确保它被正确设置。由于它是私有(private)的,我不知道如何从单元测试目标访问它。对于Objective-C,我只是添加一个扩展头文件。Swift中有类似的技巧吗?请注意,该属性还有一个带有一些代码的didSet()。 最佳答案 (请注意,Swift2添加了@testable属性,它可以使内部方法和属性可用于测试。有关更多信息,请参阅下面@JeremyP的评论。)没有。在Swi

unit-testing - 单元测试和私有(private)变量

我正在为公共(public)方法编写BDD单元测试。该方法更改了一个私有(private)属性(privatevar),所以我想编写一个expect()并确保它被正确设置。由于它是私有(private)的,我不知道如何从单元测试目标访问它。对于Objective-C,我只是添加一个扩展头文件。Swift中有类似的技巧吗?请注意,该属性还有一个带有一些代码的didSet()。 最佳答案 (请注意,Swift2添加了@testable属性,它可以使内部方法和属性可用于测试。有关更多信息,请参阅下面@JeremyP的评论。)没有。在Swi

Swift - 单元测试私有(private)变量和方法

我正在尝试测试一个类,但我对测试什么感到困惑。这是我要进行单元测试的类:classCalculatorBrain{privatevaraccumulator=0.0funcsetOperand(operand:Double){accumulator=operand}varresult:Double{returnaccumulator}privatevaroperations:Dictionary=["=":.Equals,"π":.Constant(M_PI),"e":.Constant(M_E),"±":.UnaryOperation({(op1:Double)->Doubleinr

Swift - 单元测试私有(private)变量和方法

我正在尝试测试一个类,但我对测试什么感到困惑。这是我要进行单元测试的类:classCalculatorBrain{privatevaraccumulator=0.0funcsetOperand(operand:Double){accumulator=operand}varresult:Double{returnaccumulator}privatevaroperations:Dictionary=["=":.Equals,"π":.Constant(M_PI),"e":.Constant(M_E),"±":.UnaryOperation({(op1:Double)->Doubleinr

ios - 什么时候在 Swift 中使用@objc?

在Swift中,我看到了一些方法,例如:@objcprivatefuncdoubleTapGestureRecognized(recognizer:UITapGestureRecognizer)我在想,什么时候使用@objc?我读了一些文档,但他们说当你希望它在Objective-C中可调用时,你应该添加@objc标志然而,这是Swift中的私有(private)函数,@obj是做什么的呢? 最佳答案 另一个迟到的答案,但是关于这个问题的现有答案都没有真正回答OP的问题,即:为什么你需要使用@objc在private上类成员,如果@

ios - 什么时候在 Swift 中使用@objc?

在Swift中,我看到了一些方法,例如:@objcprivatefuncdoubleTapGestureRecognized(recognizer:UITapGestureRecognizer)我在想,什么时候使用@objc?我读了一些文档,但他们说当你希望它在Objective-C中可调用时,你应该添加@objc标志然而,这是Swift中的私有(private)函数,@obj是做什么的呢? 最佳答案 另一个迟到的答案,但是关于这个问题的现有答案都没有真正回答OP的问题,即:为什么你需要使用@objc在private上类成员,如果@

c# - 创建泛型类型的实例时无法提供参数

我有一个对象,我希望它在创建后只读...也就是说,因为构造函数中的属性必须在GetHashCode中使用,因此一旦创建就不能更改。我这是许多只读类之一:publicclassAccountLabel{privatestringresult;publicAccountLabel(stringresult){//TODO:Completememberinitializationthis.result=result;}publicstringJSONRPCData{get{returnthis.result;}}}我有一个像这样的通用结果类publicclassJsonResultwhere

c# - 创建泛型类型的实例时无法提供参数

我有一个对象,我希望它在创建后只读...也就是说,因为构造函数中的属性必须在GetHashCode中使用,因此一旦创建就不能更改。我这是许多只读类之一:publicclassAccountLabel{privatestringresult;publicAccountLabel(stringresult){//TODO:Completememberinitializationthis.result=result;}publicstringJSONRPCData{get{returnthis.result;}}}我有一个像这样的通用结果类publicclassJsonResultwhere

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V