首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Qunit测试jquery数据报警器

如何用Qunit测试jquery数据报警器
EN

Stack Overflow用户
提问于 2016-08-25 05:23:17
回答 1查看 538关注 0票数 1

我对Qunit有点陌生,想问个问题。

我创建了一个JavaScript文件,以便像下面这样简单地使用数据报警器,并使用Qunit创建了一个测试代码。我要做的是显示日历并选择一个日期,并断言该日期已经选定。我的问题是,我能够显示日历,通过.trigger("focus"),但不能选择任何东西。

有人知道我是怎么做到的吗?

datepicker-basic.js

代码语言:javascript
复制
$(function () {
  $('#jquery-ui-datepicker').datepicker();
});

test-datepicker.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
	<head>
	  <meta charset="utf-8">
	  <meta name="viewport" content="width=device-width">
	  <title>test datepicker.js</title>
	  <link rel="stylesheet" href="jquery-ui/jquery-ui.css">
	  <link rel="stylesheet" href="qunit/qunit-2.0.1.css">

	  <script src="jquery/jquery-1.11.1.min.js"></script>
	  <script src="jquery-ui/jquery-ui.min.js"></script>
	  <script src="jquery-ui/i18n/datepicker-ja.js"></script>

	  <script src="qunit/qunit-2.0.1.js"></script>

	  <script src="../samples/jquery-ui/js/datepicker-basic.js"></script>
	  <script src="jquery.simulate/jquery.simulate.js"></script>
	  <script src="test-datepicker.js"></script>
	</head>
	<body>
	  <div id="qunit"></div>
	  <div id="qunit-fixture"></div>

	  <input type="text" id="jquery-ui-datepicker">
	</body>
</html>

test-datepicker.js

代码语言:javascript
复制
QUnit.test( "basic", function( assert ) {
  // initiate input value
  $("#jquery-ui-datepicker").val("");

  // focus on input-textbox and select date on calendar
  $("#jquery-ui-datepicker").trigger("focus").
	  simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );

  // get selected date from input-textbox
  var actual = document.getElementById("jquery-ui-datepicker").value;
  // create expected value
  var today = new Date();
  var expected = formatDate(today);

  // assert
  assert.ok(actual === expected, "selected value from calendar correctly");
});

EN

回答 1

Stack Overflow用户

发布于 2016-08-29 02:40:34

我想我找到了答案。我不得不添加一个trigger.("focus")。这是我改变的东西,它起了作用。

在此之前:

代码语言:javascript
复制
  // focus on input-textbox and select date on calendar
  $("#jquery-ui-datepicker").trigger("focus").
      simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );

之后:

代码语言:javascript
复制
  // focus on input-textbox
  $("#jquery-ui-datepicker").trigger("focus");
  // select date on calendar
  $("#jquery-ui-datepicker").trigger("focus").
      simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39137247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档