問題タブ [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.

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

ruby-on-rails - Timecopを使用した予期しないRspecの結果

仕様の基本的な考え方は次のとおりです。

エラーが発生します:

<%= "#{time_ago_in_words(m.created_at)} ago" %>正確に24時間異なると予想されるものを表示しています。私は何が欠けていますか?

0 投票する
0 に答える
223 参照

ruby-on-rails-3 - きゅうりのテストで Cookie の有効期限をテストする方法はありますか?

Web サイトに「remember me」Cookie を永続的ではなく 2 週間の有効期限で設定し、これをテストしたいと考えています。

これに対する私の試みは、これまでのところ成功していません。

これが私のキュウリのシナリオです。

3番目のステップ(重要なステップ)の私のステップ定義は次のとおりです

「remember me」を使用せずにユーザーのセッション有効期限について同様のテストを行うと問題なく動作しますが、これはユーザー テーブルの last_request_at 列に依存します。このテストは、ブラウザー (この場合はカピバラ) が私の auth_token Cookie を期限切れにすることに依存します。このテストを行う方法はありますか?

0 投票する
2 に答える
3336 参照

ruby-on-rails-3 - Rspec + Timecop + Capybara +CapybaraWebkitを使用した統合仕様でのCapybara::FrozenInTimeエラー

rspec、capybara、capybara-webkit、timecopを使用している一部の統合仕様でエラーが発生しています。

時間がフリーズすることを私が知っている唯一の宝石はTimecopですが、失敗したテストケースでは使用していません。

エラーが発生するのはたまにあるので、何かを変更した後、エラーが発生したかどうかさえわかりません。

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

rspec - Timecop.freeze が機能するのは、フル スペック スイートを実行した場合のみです。なぜですか?

私は大きな Rails テスト スイートを持っており、Timecop を一度だけ使用しています。

これらの仕様は、完全なスイートを次のように実行すると合格します。

また

ただし、小さいセットまたは個々の仕様を実行しようとすると、Timecop.freeze が機能しません。つまり、次の両方が失敗します。

何か案は?ruby / rspec / rake とおそらく bundler の間の相互作用について何かが欠けていますか? (記録のために-「バンドル実行」の前に上記のすべてを実行すると、同じ結果が得られます)。

これで何かが明確になる場合に備えて、Gemfile と spec.helper を含めています。

Gemfile:

spec_helper.rb:

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

ruby - Timecop と Ruby 2.0.0

Timecop 0.6.1 と Ruby 2.0.0 を使用すると、この仕様が失敗する理由を誰か提案できますか?

(Timecop 0.4.5 と Ruby 1.9.3 を使用して合格)

結果は次のとおりです。

0 投票する
0 に答える
2339 参照

javascript - Python での Webdriver - 外部スクリプトからの関数の実行

Pythonでwebdriverを使用して外部JavaScriptにある関数を実行するにはどうすればよいですか?

JavaScript は、JavaScript の内部 DateTime オブジェクトを上書きして、単体テスト用に変更されたブラウザー時間を与えるために使用されます。私はこの目的のために sinonfaketimers.js を使用するのが好きです。(ただし、TimeShift.js などの代替手段も使用できます) リンク: http://sinonjs.org/docs/#clockhttps://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

スケッチされた提案されたソリューションは次のとおりです。

  1. テスト実行中にモッキング フレームワークをリスト アイテムに挿入/追加する

  2. JavaScript Executor を使用して Date オブジェクトをモックする

  3. タイムゾーンを設定する

  4. テストを実行する

0 投票する
0 に答える
497 参照

mysql - mysql でのモック時間

問題: 現在、キュウリのテスト ケースで時間をモックするために Time Cop gem を使用しています。MySQL が Time Cop によって設定された時間を取得していないために失敗したテスト ケースが 1 つあります。

まあ言ってみれば。システムの日付 = 2015 年 1 月 21 日 時間後 Cop = 2015 年 2 月 1 日 MySQL 内で

このクエリは、「2015 年 1 月 21 日」を返します。したがって、テストは失敗していました。

それで、これは私の質問につながります。

  1. テストケースで時間をモックするのは良い習慣ですか?
  2. 時間がモックされている場合、MySQL も同じ時間を受け取っていることを確認するにはどうすればよいですか?
0 投票する
1 に答える
77 参照

api - API を使用した強力なパラメータ

注: この質問には (私が) 回答済みであり、以下の情報はニシンであることが判明しました。誰かに役立つ場合に備えて、ここに残します。答えは以下をご覧ください!

すべてのコントローラーを強力なパラメーターにアップグレードしていますが、API コントローラーで問題が発生し、ファンキーなタイムゾーン処理を行う必要があります。

強力なパラメーターはdeal_strong_paramsであり、問​​題はそれらを行の2番目の引数として持つことで発生するようdeal_paramsです。そのことをいじるなど、たくさんのことを試しましたが、それはうまくいきActionController::Parameters.new()ませんでした。強力なパラメーターでよくあることですが、予期した応答ではなく 400 エラーが発生します。私は非常に多くのことを試しました。あなたの提案を本当に歓迎します。

API コントローラーからの関連コード:

強力なパラメーター:

そして、TimeCop で機能する特別な時間式。必要なので含めます: