問題タブ [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# - PrivateObject を使用して C# でプライベート メソッドを単体テストする方法

プライベート メソッドの簡単な単体テストを作成しようとしていますが、VS2010 にメソッド スタブを自動生成させ、不足している情報を追加させます。これは私が持っているコードです。

これを実行すると、例外が発生します。

ここで私が間違っていることを誰か知っていますか?私の目的は、プライベート メソッドのテストに PrivateType と PrivateObject を使用する方法を学ぶことです。

編集:

PrivateObject.Invoke を使用するつもりはありません (リファクタリングに適していません)。

0 投票する
1 に答える
2225 参照

iphone - iPhoneのプライベートAPIで機内モードを確認して切り替えます

プライベートAPIを使用して機内モードを確認および切り替える方法を知っている人はいますか?(いいえ、SCNetworkReachabilityは十分ではありません。はい、将来壊れてしまう可能性のあるプライベートAPIを使用できてうれしいです。)

0 投票する
3 に答える
105 参照

javascript - JavaScriptのプライベートメソッドからメンバー変数にアクセスする

lick()はCatのプライベートメソッドです。残念ながら、Catのthis.pawにはlick()からアクセスできません。含まれているクラスのメンバー変数にアクセスできるプライベートメソッドを作成する簡単な方法はありますか?

結果

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

以下は (願わくば) より正確な方法で、 maximumCommonFactor および toString メソッドのコードを記述します。

ランナークラス追加

0 投票する
3 に答える
263 参照

java - 引数を指定してプライベート メソッドを呼び出す方法

引数を持つプライベート メソッドを toString メソッドで使用できるようにするのに非常に苦労していますが、2 つのメソッドを連携させる方法がわかりません。

メインクラス:

そして私のランナークラスを相互参照するために:

このラボの説明が必要な場合は、ラボシートの Google ドキュメントをご覧ください: 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::Baz、インスタンスや相互に名前でBar::Quuxアクセスする必要があることです。Fooしたがって、これらのさまざまなクラスが名前で他のインスタンスにアクセスする方法の順序を維持することは、Barモジュール自体の責任であると考え、その中にパブリック モジュール メソッドを作成しました。

クラスFooBazQuuxが互いに参照するときはいつでも、Bar.Foo( "John Smith" )スタイル呼び出しを使用します。これにより、これらのインスタンスを一意の名前で参照することも可能になります。さて、私の問題は、これがまだ 100% コーシャとは思えないことです。rdocモジュールのドキュメントを作成するために実行するとBar、パブリック クラス メソッド#Foo#Baz、ドキュメントに作成され#Quuxます。しかし、これらは実際にはユーザー インターフェイスの一部になることを意図したものではありません。したがって、次のオプションがありますが、それぞれに問題があります。

  1. #Foo#Baz#Quuxをユーザー インターフェイスに含めます。問題: ユーザーは実際にはそれほど必要としていません。それらを UI に含めることは、私の設計意図ではありませんでした。

  2. # :nodoc:それらにディレクティブを追加して、それらをrdoc文書化しないようにします。問題: 気分が悪い。Bar.Foo友達がユーザーインターフェイスから除外されたようなものではありません。それらはまだUIの一部のように感じますが、文書化されておらず、秘密です. 私はそれをしたくありません。

  3. を使用してそれらをプライベートに宣言します#private_class_method。ただし、インスタンス#Foo#Baz#Quuxが通常の操作中に名前で相互にアクセスする場合でも、それらもBar.send :Foo, "John Smith"スタイルを使用する必要があります。

質問: オプション 3. が最も害が少ないようです。しかし、それでも完璧ではありません。理想的には、メソッドBar.FooBar.Baz、を保護して、ユーザーが を使用する必要があるときに、 をBar.Quux呼び出すだけでこれらの人が名前で相互に呼び出すことができるようにしたいと考えています。これらのモジュール メソッドはユーザー向けに文書化されていません。この状況を達成するために、他にどのようなオプションが必要ですか? 一部のクラスが他の誰かのプライベート メソッドを自由に使用できるようにする方法はありますか? また、保護されたクラス メソッドの経験がありませんが、解決策になるでしょうか? これを読んでくれてありがとう。Bar.Foo "John Smith"Bar.send :Foo, "John Smith"

0 投票する
3 に答える
108 参照

c++ - 同じクラスのオブジェクト間でのみ operator= の使用を許可しますか?

クラス階層があり、これを禁止したい:

FooのスーパークラスですBarBarこれを行うと、オブジェクトの一部がスライスされます。プライベートにすることでこれを解決できることは知っていますがoperator=、型が異なる場合にのみ代入演算子の使用を禁止することは可能ですか?

非公開にするのと同じoperator=ですが、これを許可します:

サブクラスも作成されると仮定Barします。