草庐IT

private_extern

全部标签

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

c# - Visual Studio : Using external files (without copying them)

我想将另一个服务生成的枚举类(.cs)导入到我的项目中。因此,如果该服务将更新此文件,它应该会在我的项目中自动更新。它必须是纯文本的(所以我不能使用程序集),因为我们不能在php中编译代码。这就是我想要这个的原因:我们在多个应用程序中使用全局语言字符串,出于某些原因我想将它们用作枚举。添加新文本时,我希望能够在不复制或更改任何内容的情况下使用它们。也许还有另一种方法可以实现这一目标。谢谢。 最佳答案 您可以将源代码文件作为链接添加到项目。这样做:右键单击项目并选择“添加->现有项”导航到要添加为链接的文件,然后选择它。查看“添加现有

c# - Visual Studio : Using external files (without copying them)

我想将另一个服务生成的枚举类(.cs)导入到我的项目中。因此,如果该服务将更新此文件,它应该会在我的项目中自动更新。它必须是纯文本的(所以我不能使用程序集),因为我们不能在php中编译代码。这就是我想要这个的原因:我们在多个应用程序中使用全局语言字符串,出于某些原因我想将它们用作枚举。添加新文本时,我希望能够在不复制或更改任何内容的情况下使用它们。也许还有另一种方法可以实现这一目标。谢谢。 最佳答案 您可以将源代码文件作为链接添加到项目。这样做:右键单击项目并选择“添加->现有项”导航到要添加为链接的文件,然后选择它。查看“添加现有

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

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

编辑:事实证明我遗漏了一些明显的东西,但我将保留这个问题以防其他人犯同样明显的错误。感谢那些指出它的人请参阅底部的解释。是否可以对覆盖接口(interface)属性的属性进行非公共(public)设置?也许我有一个愚蠢的时刻,但在我看来,在接口(interface)中定义一个属性隐含地要求没有派生类可以为所述属性提供任何非公共(public)集。例子:interfaceIField{boolIsValid{get;}}...并且由于接口(interface)属性可能没有可访问性修饰符意味着:classField:IField{publicoverrideboolIsValid{get;

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

编辑:事实证明我遗漏了一些明显的东西,但我将保留这个问题以防其他人犯同样明显的错误。感谢那些指出它的人请参阅底部的解释。是否可以对覆盖接口(interface)属性的属性进行非公共(public)设置?也许我有一个愚蠢的时刻,但在我看来,在接口(interface)中定义一个属性隐含地要求没有派生类可以为所述属性提供任何非公共(public)集。例子:interfaceIField{boolIsValid{get;}}...并且由于接口(interface)属性可能没有可访问性修饰符意味着:classField:IField{publicoverrideboolIsValid{get;