1

目前使用 RiotJS 和 Mocha 进行单元测试。想知道我是否可以使用 PhantomJS 和 CasperJS 之类的无头浏览器 webkit 对我的 RiotJS 标签/页面进行额外测试。到目前为止,我加载标签/页面和对文档执行查询的所有尝试都失败了。将不胜感激任何样品/链接。

谢谢

更新:querySelector 对“#testId”失败,但对“testId2”成功。

从我的单元测试中提取:

  page.open('http://localhost/src/default.html', function (status) {
   var test = document.querySelector("#testId"); // returns undefined
  }

<!-- html page -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Riot.js Example</title>
</head>
<body>

<!-- mount points -->

<spinner data-url="./data.json" data-sourceId="instance1" data-model="myModel" id="testId"></spinner>
<imageoutput data-sourceId="instance1" data-model="myModel"></imageoutput>

<div id="testId2">this content</div>

<!-- mount the same way -->
<!--[if lt IE 9]>
<script src="../dist/scripts/es5-shim.js"></script>
 <script src="ie-stuff.js"></script>
<![endif]-->

<script src="../dist/scripts/require.js" data-main="./main"></script>

</body>
</html>
4

2 回答 2

0

帕特里克,

你最好指定你想要做的测试目标,在每个页面上做什么,看看 CasperJS / PhantomJS 是否实现了它会很好!

CasperJS,与 PhantomJS 一起工作可以独立工作,我承认今天,任何自动化项目页面或测试,我只使用它们并给出窍门!

对于布局测试(图像、字体、CSS),您可以学习 PhantomCSS,但如果您的目标是导航、单击、测试元素甚至下载存档(假设避免使用 Silverlight、Java 的 URL ... CasperJS 将给出帐户做任何你想做的事情......你可以在 log.xml 获得回报,以便在任何其他工具或系统中处理它。

我正在完成我的新网站和它,发布一些关于 CasperJS 和 PhantomJS 的教程和提示......并且在未来,也许是一门课程......如果你愿意,你可以在 facebook、twitter、github 上找到我......当一切都在线时发布在那里。

于 2015-06-19T13:30:50.487 回答
0

我在 riotjs 中使用 Protractor 和 Karma 取得了一些成功。当然,我们在项目中使用了RiotTS,但原则保持不变。

虽然 Karma 和 Protractor 通常用于常用的角度测试应用程序,但它们是不可知的。那里有大量信息,并得到广泛支持。

从源代码我可以看到你可能正在做一些异步的事情,(data-url="./data.json")这意味着你需要在你的应用程序中提出一个标志,表明数据已加载或页面已准备好。

你总是可以通过document.querySelector('imageoutput')._tag调查你的 riot 标签的状态来反省 riot。

于 2017-04-29T09:06:31.760 回答