问题标签 [private-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1741 浏览

c# - 如何在 C# 中使用 PrivateObject 对私有方法进行单元测试

我试图对私有方法进行简单的单元测试,我让 VS2010 自动生成方法存根并添加缺少的信息:这是我拥有的代码

当我运行它时,我得到一个异常:

有谁知道我在这里做错了什么?我的目标是学习如何使用 PrivateType 和 PrivateObject 进行私有方法测试。

编辑:

我不想使用 PrivateObject.Invoke (它对重构不友好)。

0 投票
1 回答
2225 浏览

iphone - 在 iPhone 上使用私有 API 检查和切换飞行模式

有谁知道如何使用私有 API 检查和切换飞行模式?(不,SCNetworkReachability 不够好,是的,我很高兴使用将来可能会中断的私有 API。)

0 投票
3 回答
105 浏览

javascript - 从 JavaScript 中的私有方法访问成员变量

lick() 是 Cat 的私有方法。不幸的是,在 lick() 中无法访问 Cat 的 this.paw。有没有一种简单的方法来创建一个可以访问其包含类的成员变量的私有方法?

结果

0 投票
2 回答
4172 浏览

python - Python双下划线修饰

我对这种行为有点困惑(使用 python 3.2):

我已经阅读了一些关于双下划线如何导致属性名称“损坏”的内容,但我希望在上述两种情况下都会出现相同的名称损坏。

对象名称前的单下划线和双下划线是什么意思?

有什么想法吗?

0 投票
1 回答
1653 浏览

java - 如何返回多个变量和/或使用私有 int 方法?

这是我的代码:

我需要让它打印出变量 a、b 和 c,但我不知道如何让它这样做。我目前收到的错误消息是“a 无法解析为变量 b 无法解析为变量 c 无法解析为变量”

如果有帮助,这里是相关实验室表的链接: https ://docs.google.com/open?id= 0B_ifaCiEZgtcX08tbW1jNThZZmM

更新 这是我更新的 toString 方法:

在我编辑时,我最伟大的CommonFactor 方法:

更新#2

这是(希望)为 bestCommonFactor 和 toString 方法编写代码的更正确方法:

跑步者类添加

0 投票
3 回答
263 浏览

java - 如何调用带参数的私有方法

我很难获得一个带有参数的私有方法,以便在我的 toString 方法中使用,但不知道如何让这两种方法合作。

主类:

并交叉引用我的跑步者课程:

如果你发现你需要澄清这个实验室,这里是实验室表的谷歌文档: https ://docs.google.com/open?id= 0B_ifaCiEZgtcX08tbW1jNThZZmM

0 投票
2 回答
415 浏览

php - PHP - 调用私有方法进行测试,正确的设计是什么?

可能重复:
PhpUnit 私有方法测试

在我的单元测试中,我需要调用一个私有方法来将我的装置设置为给定状态。另一方面,我宁愿不公开这种方法。我该怎么做?

0 投票
2 回答
78 浏览

c++ - 无法访问私有函数

任何人都可以帮助我 - 我正在尝试访问不接受访问的私人功能。

0 投票
1 回答
106 浏览

ruby - 选择性地允许类使用其他人的私有类方法,或等效的解决方案

在我的项目Bar中,我有这个类Foo,它的实例代表唯一的、命名的真实世界对象。对这些实例的引用分散在我项目中的数据结构周围,而且我决定让它们通过它们的名称访问。为此,类 Foo 本身会跟踪其实例,例如

现在这是一种常见的模式。通常,要访问实例,可以在以下位置建立公共类方法Foo

但问题是,模块下有命名实例的类比类Bar,例如Bar::BazBar::Quux等等,它们需要Foo通过名称访问实例和彼此。所以我认为保持这些不同类通过名称访问彼此实例的方式的顺序是Bar模块本身的责任,我在其中创建了公共模块方法:

每当类Foo, Baz,Quux相互引用时,它们都会使用Bar.Foo( "John Smith" )样式调用,这使得也可以通过它们的唯一名称来引用这些实例。现在我的问题是,这对我来说仍然不是 100% 的犹太教。当我运行rdocBar模块、公共类方法创建文档#Foo#Baz#Quux将其添加到文档中。但这些并不是真正打算成为用户界面的一部分。所以我有以下选项,每个选项都有问题:

  1. 在用户界面中包括#Foo, #Baz, 。问题:用户并没有那么迫切地需要它们;我的设计意图不是让它们出现在 UI 中。#Quux

  2. 向它们添加# :nodoc:指令以防止rdoc记录它们。问题:感觉不对。它不喜欢Bar.Foo和朋友被排除在用户界面之外。感觉更像是它们仍然是 UI 的一部分,但没有记录,是秘密的。我不想要那个。

  3. 使用 . 将它们声明为私有#private_class_method。但是,即使实例#Foo, #Baz,#Quux在正常操作期间通过名称相互访问,它们也必须使用Bar.send :Foo, "John Smith"样式。

问题:选项 3. 似乎危害最小。但是,它仍然不完美。理想情况下,我希望方法Bar.Foo, Bar.Baz,Bar.Quux以这样的方式受到保护,这些人可以通过简单地调用来通过名称相互调用Bar.Foo "John Smith",而用户必须使用Bar.send :Foo, "John Smith",并且这些模块方法没有为用户记录。我还需要哪些其他选择(如果有的话)来实现这种状态?有没有办法选择性地允许某些类随意使用其他人的私有方法?另外,我对受保护的类方法没有经验,这可能是一个解决方案吗?感谢您花时间阅读本文。

0 投票
3 回答
108 浏览

c++ - 允许 operator= 仅在同一类的对象之间使用?

我有一个类层次结构,我想禁止这样做:

Foo的超类在哪里Bar。这样做会切开Bar对象的一部分。我知道您可以通过将operator=其设为私有来解决此问题,但是是否可以仅禁止使用不同类型的赋值运算符?

就像operator=私有化但仍然允许这样做:

假设子类也将被制作Bar