問題タブ [shim]
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.
ruby-on-rails - Rbenv でバンドラーが失敗する
Rails 2.3.2 アプリケーションを継承し、他の gem やソフトウェアの古いバージョンを含む rbenv の下で ruby 1.8.7 を使用して動作するようにしました。
今、Gemfile を生成し、バンドル チェック、インストールなどのバンドル コマンドを実行して検証しようとしましたが、これらの操作のいずれも失敗します。rbenv bundler プラグインをインストールしたところ、見た目が少し軽くなりましたが、まだわかりません。
私のバンドラーのインストール:
ルビー:
Rbenv も今私に問題を与えます:
バンドラー用のシムがあるはずではありませんか?bundler を直接呼び出すようです。
迷っています。誰かがこれで私を助けることができれば、私はうれしいです.
ps:これも発見しました:
unit-testing - Shims を使用してプライベート メソッドをテストする
Shim を使用して、DataSyncCore というこのクラスのプライベート メソッドの 1 つをテストしようとしています。私は shim を初めて使用し、「プロパティまたはインデクサーの GetEnvironmentString は、アクセサーが不足しているため、このコンテキストでは使用できません。これを修正するにはどうすればよいですか」というエラーが表示される理由がわかりません。 ?
これは私の単体テストです:
requirejs - RequireJS モジュールが shim されたモジュールを読み込もうとする
組織内の別のチームによって作成された一部の JavaScript コードの RequireJS shim を作成しようとして問題が発生しています。スクリプトは、通常の HTML スクリプトを介して次のようにロードされます。
私のmain.jsには以下が含まれています:
そして、さまざまな方法でカスタム モジュールにアクセスしようとしましたが、これが現在のコードです。
しかし、ページ/アプリが読み込まれるたびに、RequireJS から読み込みに失敗したことを示すエラーが表示されますapp/MyCustomModule.js
(サーバーからファイルを要求しようとしたコンソールに 404 エラーが表示されます)。私は何を間違っていますか?
unit-testing - Microsoft Fakes と静的でジェネリックなメソッドによるシミング
単体テスト用に静的ジェネリック メソッドをシムする必要があります。ただし、Fakes に shim オブジェクトを作成させることはできないようです。これを達成する方法を知っている人はいますか?
特に、Newtonsoft の JsonConvert.DeserializeObject<>() をシムしたい
c# - シム・ア・ボイド・メソッド
次の(レガシー、前任者から継承)VB.Net(フレームワーク2.0)のクラスとメソッドがあり、例外でシステムイベントログを作成します。
これを C# (フレームワーク 4.5) 単体テスト プロジェクトでテストしようとしていますが、ロジックの一部ではaValue
、コンマで区切られた 2 つの数字が必要です。そうでない場合は、例外とイベント ログがスローされます。
例外が正しくスローされることを確認するために、次の単体テストを設定しました。
MyMethod
ロジックが予想される例外を引き起こすため、これはすべてうまく機能し、テストに合格します。ただし、イベント ログは書き込まないようにします。MyUtitlityClass
では、呼び出しを傍受して代わりに何もしないように Shim するにはどうすればよいでしょうか。LogError
私が見た Fakes の例はすべて、偽の値を返すメソッドに関するものです (そして、すべてC# で記述されています!) そのようなパターンを実装しようとすると、LogError に getter がないというエラーが発生します。
c# - Microsoft Fakes を介して ConcurrentDictionary (C#) で長い外部依存関係をシムする方法は?
私がテストする必要があるコードでは、そのような外部依存関係が見つかりました:
var something = GConfig.SConfig[Type.ServiceType1].Names;
この部分のコードは次のようになります。
その依存関係をシムする必要がありますが、私自身では完全な解決策を見つけることができず、部分的にしか見つかりません:
GConfigIt (およびシミング名) の場合:Fakes.ShimGConfigIt.AllInstances.NamesGet
SConfig をシミングする場合:Fakes.ShimGConfig.AllInstances.SConfigGet
しかし、接続が見つかりません。完全にシムする方法です。
PS 私は単なるテスターであり、既存のコードを変更することはできません。変更を行うには、開発者にそれを行うよう説得する必要があります (つまり、GConfig の追加インターフェイス)。しかし、開発者は、それが「簡単なテスト」または「テストのためのテスト」のためだけの変更ではなく、実際に行う必要があることを確認する必要があります。
c# - Fakes がビルド済みの Fakes プロジェクトから Fakes dll を正しく参照しないのはなぜですか?
以下で説明するように、別のプロジェクトからmscorlib 偽の DLLを参照しようとすると問題が発生します。
MS Fakes を使用して単体テストを作成している多数の VS12 ソリューションがあります。次の URL の提案に基づいて、偽の Dll のためだけにプロジェクトを作成することにしました: Microsoft Fakes のコード生成、コンパイル、および命名規則。アイデアは、偽の DLL の場所がローカライズされ、テスト プロジェクト全体に多数の偽の DLL をばらまく必要がないということです。(これを一般的なフェイク ライブラリと呼びます。)
現在の単体テストではPresentationCore
、System.Management
とのシムを使用してSystem
います。ただし、私が使用しているシステム shim は、実際にはmscorlib.dll
、Convert (静的クラス) と DriveInfo (シール クラス) にあります。mscorlib のこれら 2 つのクラスのみが必要なので (今のところ)、mscorlib 用に次の .fakes ファイルを作成しました。
PresentationCore と SystemManagement については、同様の .fakes ファイルがあり、クラスをクリアしてから名前で追加します。
ただし、私のテスト プロジェクトでは、共通のフェイク ライブラリから mscorlib.4.0.0.0.Fakes DLL の参照を追加すると、Convert シムと DriveInfo シムを使用したテストが実行されません。代わりに、テスト メソッドは Microsoft.QualityTools.Testing.Fakes.Shims.ShimNotSupportedException をスローし、サポートされていない shimmed クラスを指定します。PresentationCore および System.Management の機能を使用するテストは、共通のフェイク ライブラリを参照する場合でも機能します。
ただし、System の Fakes アセンブリをテスト プロジェクトに直接 (および mscorlib を間接的に) 追加した場合、テスト プロジェクトにまったく同じ mscorlib.fakes ファイルを作成し、ローカルのmscorlib.4.0.0.0.Fakes Dll への参照を追加すると、一般的なフェイク ライブラリにリンクしたときに例外をスローしたテストは、問題なく実行されます。
オブジェクト ブラウザーを使用して、一般的なフェイク ライブラリの mscorlib フェイク DLL を調べ、ローカルでビルドされたものと比較したところ、同じように見えます。
一般的なフェイク ライブラリで mscorlib フェイクを参照しても機能しない理由を知っている人はいますか?
unit-testing - ShimSPWeb().LocaleGet が利用できない?
単体テストの目的で dll の偽のアセンブリを追加できる VisualStudio 2012 の新機能を調べ始めました。私は SharePoint 2010 を使用していますが、SharePoint API に依存するコードを単体テストするのは面倒です。
Microsoft.SharePoint の偽のアセンブリを追加したところ、問題なく動作しましたが、メソッドをオーバーライドする必要があるところまで来ましたSPWeb.Locale
。それは簡単だと思いました。のような方法があると思っていたのShimSPWeb.LocaleGet
ですが、ありません。
Locale
これは、私に関する唯一のオプションです。ShimSPWeb
要するに:利用可能なものがあるはずshimWeb.LocaleGet
です。