問題タブ [timecop]
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 - Timecopを使用した予期しないRspecの結果
仕様の基本的な考え方は次のとおりです。
エラーが発生します:
<%= "#{time_ago_in_words(m.created_at)} ago" %>
正確に24時間異なると予想されるものを表示しています。私は何が欠けていますか?
ruby-on-rails-3 - きゅうりのテストで Cookie の有効期限をテストする方法はありますか?
Web サイトに「remember me」Cookie を永続的ではなく 2 週間の有効期限で設定し、これをテストしたいと考えています。
これに対する私の試みは、これまでのところ成功していません。
これが私のキュウリのシナリオです。
3番目のステップ(重要なステップ)の私のステップ定義は次のとおりです
「remember me」を使用せずにユーザーのセッション有効期限について同様のテストを行うと問題なく動作しますが、これはユーザー テーブルの last_request_at 列に依存します。このテストは、ブラウザー (この場合はカピバラ) が私の auth_token Cookie を期限切れにすることに依存します。このテストを行う方法はありますか?
ruby-on-rails-3 - Rspec + Timecop + Capybara +CapybaraWebkitを使用した統合仕様でのCapybara::FrozenInTimeエラー
rspec、capybara、capybara-webkit、timecopを使用している一部の統合仕様でエラーが発生しています。
時間がフリーズすることを私が知っている唯一の宝石はTimecopですが、失敗したテストケースでは使用していません。
エラーが発生するのはたまにあるので、何かを変更した後、エラーが発生したかどうかさえわかりません。
rspec - Timecop.freeze が機能するのは、フル スペック スイートを実行した場合のみです。なぜですか?
私は大きな Rails テスト スイートを持っており、Timecop を一度だけ使用しています。
これらの仕様は、完全なスイートを次のように実行すると合格します。
また
ただし、小さいセットまたは個々の仕様を実行しようとすると、Timecop.freeze が機能しません。つまり、次の両方が失敗します。
何か案は?ruby / rspec / rake とおそらく bundler の間の相互作用について何かが欠けていますか? (記録のために-「バンドル実行」の前に上記のすべてを実行すると、同じ結果が得られます)。
これで何かが明確になる場合に備えて、Gemfile と spec.helper を含めています。
Gemfile:
spec_helper.rb:
ruby - Timecop と Ruby 2.0.0
Timecop 0.6.1 と Ruby 2.0.0 を使用すると、この仕様が失敗する理由を誰か提案できますか?
(Timecop 0.4.5 と Ruby 1.9.3 を使用して合格)
結果は次のとおりです。
javascript - Python での Webdriver - 外部スクリプトからの関数の実行
Pythonでwebdriverを使用して外部JavaScriptにある関数を実行するにはどうすればよいですか?
JavaScript は、JavaScript の内部 DateTime オブジェクトを上書きして、単体テスト用に変更されたブラウザー時間を与えるために使用されます。私はこの目的のために sinonfaketimers.js を使用するのが好きです。(ただし、TimeShift.js などの代替手段も使用できます) リンク: http://sinonjs.org/docs/#clock、https://github.com/plaa/TimeShift-js
そこで、JavaScript 自体を呼び出しますが、それぞれの関数を呼び出す次の Python コードを作成しました。
この問題を正しく理解している限り、これを機能させるために必要なことは、それぞれの JavaScript 関数を正しい引数で実行することだけです。次のような適切な文字列を作成することで、引数を渡すことができると思います。
JavaScript sinon_timers.js 内の実際の関数は次のとおりです。
完全なスクリプトは、sinonjs.org にあります。
http://sinonjs.org/releases/sinon-timers-1.12.1.js
しかし、sinon_timers.js で関数 sinon.timers を呼び出す構文についてはよくわかりません。それ、どうやったら出来るの?
アップデート:
Sainath Motlakunta さんが解決策を提案しました。残念ながら、うまくいきません。しかし、パズルを解く一歩手前にいるのかもしれません:
selenium.common.exceptions.WebDriverException: メッセージ: sinon が定義されていません
完全なトレースバック:
この投稿には、まったく同じ質問をする有用な情報があるでしょうか?: https://sqa.stackexchange.com/questions/8838/faking-system-time-date-with-selenium-webdriver
スケッチされた提案されたソリューションは次のとおりです。
テスト実行中にモッキング フレームワークをリスト アイテムに挿入/追加する
JavaScript Executor を使用して Date オブジェクトをモックする
タイムゾーンを設定する
テストを実行する
mysql - mysql でのモック時間
問題: 現在、キュウリのテスト ケースで時間をモックするために Time Cop gem を使用しています。MySQL が Time Cop によって設定された時間を取得していないために失敗したテスト ケースが 1 つあります。
まあ言ってみれば。システムの日付 = 2015 年 1 月 21 日 時間後 Cop = 2015 年 2 月 1 日 MySQL 内で
このクエリは、「2015 年 1 月 21 日」を返します。したがって、テストは失敗していました。
それで、これは私の質問につながります。
- テストケースで時間をモックするのは良い習慣ですか?
- 時間がモックされている場合、MySQL も同じ時間を受け取っていることを確認するにはどうすればよいですか?
api - API を使用した強力なパラメータ
注: この質問には (私が) 回答済みであり、以下の情報はニシンであることが判明しました。誰かに役立つ場合に備えて、ここに残します。答えは以下をご覧ください!
すべてのコントローラーを強力なパラメーターにアップグレードしていますが、API コントローラーで問題が発生し、ファンキーなタイムゾーン処理を行う必要があります。
強力なパラメーターはdeal_strong_params
であり、問題はそれらを行の2番目の引数として持つことで発生するようdeal_params
です。そのことをいじるなど、たくさんのことを試しましたが、それはうまくいきActionController::Parameters.new()
ませんでした。強力なパラメーターでよくあることですが、予期した応答ではなく 400 エラーが発生します。私は非常に多くのことを試しました。あなたの提案を本当に歓迎します。
API コントローラーからの関連コード:
強力なパラメーター:
そして、TimeCop で機能する特別な時間式。必要なので含めます: