我应该使用Protractor或Karma进行端到端测试吗?
Angular-seed使用Protractor/Selenium WebDriver进行E2E,但angular-phonecat教程使用业力.
我读到我应该使用Karma进行单元测试,使用Protractor进行E2E,看起来不错,但我想我会在这里要求得到其他开发者的意见.
我正在使用android-async-http而且非常喜欢它.我遇到了POST数据的问题.我必须以下列格式将数据发布到API: -
<request>
<notes>Test api support</notes>
<hours>3</hours>
<project_id type="integer">3</project_id>
<task_id type="integer">14</task_id>
<spent_at type="date">Tue, 17 Oct 2006</spent_at>
</request>
Run Code Online (Sandbox Code Playgroud)
根据文档,我尝试使用它RequestParams
,但它失败了.这是其他任何方式吗?我也可以发布等效的JSON.有任何想法吗?
我正在开发一个Webapp.它由两部分组成.节点休息服务器和angularjs客户端.
该应用程序采用以下方式构建:Rest服务器< - > Api模块< - > Angular App
该服务器目前已经过充分测试.我有单元测试和集成测试.集成测试正在访问一个真实的数据库并通过http调用其余的api.我认为这与服务器测试一样高.集成测试也运行得很快.我非常有信心我测试服务器的方式足以满足我的用例,我对结果感到满意.
然而,我正在努力如何测试angularjs应用程序.我对相关指令和模块进行了单元测试.写这些不是问题.
我想编写涵盖用户场景的集成测试.像注册场景:用户访问网站,转到注册表单,并提交带有数据的表单.
angularjs团队正在从ng场景转变为量角器.量角器正在使用Selenium来运行测试.因此,有两个范围:应用范围和测试范围.
现在我可以想到我可以使用的三种不同的抽象.而且我不确定哪一套最适合我.
在这种情况下,我不需要设置服务器.所有交互都在浏览器中运行
优点:
坏处:
我真的很喜欢这个解决方案,但我觉得很难嘲笑Api.需要在浏览器范围内修改Api.因此,我需要将测试中的修改发送到浏览器.这可以做到,但是我没有看到如何mockedApi.method.wasCalledOnce()
在测试范围中运行断言
优点:
坏处:
我可以在nodejs中创建一个完整的Mock Rest服务器.量角器测试用nodejs编写,因此可以在测试中完成对服务器的控制.在我运行测试之前,我可以告诉服务器如何响应.像这样的东西:server.onRequest({method: 'GET', url: '/'}).respondWith('hello world')
然后我可以做断言 wasCalledOnce
每个测试都使用完整的服务器运行,并且可以向数据库添加元素.在每次测试之后,可以查看数据库中的预期元素
优点:
坏处:
我应该选择什么?你会怎么做?
PATCH
在Backbone.js中保存模型属性时执行请求的正确方法是什么?
我想添加一个javascript函数来捕获<a>
html页面内的所有点击事件.
所以我添加了一个管理所有<a>
点击事件的全局函数,但没有添加onclick给每个(既不使用.onclick=
也不attachEvent(onclick...)
是内联onclick=
).我会在html中留下<a>
简单的内容,<a href="someurl">
而不会触及它们.
我尝试window.onclick = function (e) {...}
但只捕获所有点击如何仅指定点击<a>
并提取<a>
被点击的内部链接?
限制:我不想使用任何exra库,如jQuery,只是vanilla javascript.
有没有一个很好的软件来管理java .properties语言文件,我试过Pootle但你必须转换为po文件,然后还有其他选择吗?
我需要一些翻译人员可以通过一些可以管理.properties文件的翻译软件来翻译我们的JSF gui的东西
我不明白Jackson的@JsonView(Views.MyClass.class)是什么.我知道我可以用这种方式注释POJO的字段和方法,以过滤未注释的字段和方法与JSON序列化.但什么是Views.Myclass类?它是杰克逊图书馆的模板类吗?
为什么Views类中有很多类?例如这样:
class Views {
static class Public { }
static class ExtendedPublic extends PublicView { }
static class Internal extends ExtendedPublicView { }
}
Run Code Online (Sandbox Code Playgroud)
为什么需要它,它是如何工作的?
注意这不是以下任何一个重复
我有两个约会:
"2016-08-31"
"2016-11-30"
它在上述两个日期之间的91天持续时间,我预计我的代码将返回3个月的持续时间,但以下方法仅返回2个月.有人有更好的建议吗?或者你们认为这是Java 8中的一个错误吗?91天的持续时间仅返回2个月.
非常感谢你的帮助.
方法1:
Period diff = Period.between(LocalDate.parse("2016-08-31"),
LocalDate.parse("2016-11-30"));
Run Code Online (Sandbox Code Playgroud)
方法2:
long daysBetween = ChronoUnit.MONTHS.between(LocalDate.parse("2016-08-31"),
LocalDate.parse("2016-11-30"));
Run Code Online (Sandbox Code Playgroud)
方法3:
我尝试使用Joda库而不是Java 8 API,它的工作原理.它将loos返回3,看起来像Java持续时间的月计算也使用了天数值.但就我而言,我不能在我的项目中使用Joda.所以还在寻找其他解决方案.
LocalDate dateBefore= LocalDate.parse("2016-08-31");
LocalDate dateAfter = LocalDate.parse("2016-11-30");
int months = Months.monthsBetween(dateBefore, dateAfter).getMonths();
System.out.println(months);
Run Code Online (Sandbox Code Playgroud) 我有一个在其下面有ui-view的fieldset.
每个视图都有很多字段(字段是包装输入的指令).
它看起来像这样:
<fieldset ng-disabled='myCondition'>
<div ui-view></div> // this changes with lot's of fields that look like <div field='text-box'></div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
现在,这很好用,除IE之外的所有浏览器都禁用字段.
我做了一些谷歌,看到即不支持fieldset +禁用,我正在寻找一个快速的解决方法.
我尝试了一些接近但不完美的事情,我认为我不是第一个需要解决方案的人(即使我没有在谷歌上找到任何东西).
internet-explorer fieldset disabled-input angularjs angularjs-directive
我最近听说,Angular正在转向Protractor作为新的端到端测试工具,我的理解是否正确?我克隆并查看了样本.我能够运行jasmine-node来查看所有测试运行正常.我可以按照示例代码,但只是好奇,有没有可用的写入?我没有找到任何好的文件.
谢谢
angularjs ×4
java ×3
protractor ×3
javascript ×2
android ×1
backbone.js ×1
capture ×1
events ×1
fieldset ×1
file ×1
http-patch ×1
jackson ×1
java-8 ×1
json ×1
loopj ×1
node.js ×1
pootle ×1
post ×1
properties ×1
rest ×1
testing ×1
translation ×1