小编cWa*_*ren的帖子

最佳实践:测试接口合同合规性?

假设定义了接口

interface Foo {
  int getBaz();
  void doBar();
}
Run Code Online (Sandbox Code Playgroud)

进一步假设合同规定每次doBar被称为baz都会增加.(好的,这是一个人为的代码,但在这里坚持我)

现在我想提供一个单元测试,我可以提供给Foo实施者,以便他们可以验证他们是否符合所有合同条件.

class FooTest {
  protected Foo fooImpl;

  @Test
  public void int testBazIncrement()
  {
    int b = fooImpl getBaz();
    fooImpl.doBar();
    Assert.assertEquals( b+1, fooImpl.getBaz();
  }
}
Run Code Online (Sandbox Code Playgroud)

将测试提供给Foo的实现者的最佳实践是什么?在我看来,需要一种机制让他们调用FooTest并提供Foo或FooFactory来构造Foo实例.此外,如果有很多测试(想想大接口),那么我想把所有这些测试放在一个FooTest类中.

有没有关于如何实施此类测试的最佳实践?

java testing junit interface

6
推荐指数
1
解决办法
671
查看次数

Selenium Web Driver(Firefox)是否能够读取AngularJS ng-model注入的初始值?

我有一个使用ng-model绑定到javascript对象的文本输入字段.javascript对象为字段提供初始值.

<input class="class1 class2" type="text" ng-model="scopeVar"></input>
Run Code Online (Sandbox Code Playgroud)

scopeVar是文本值.

当页面加载时,Selenium(使用firefox驱动程序)可以找到输入字段,验证它是否可见,可以在字段中输入文本然后再读取该文本,但它无法读取最初在该字段中的文本.

如果我在firefox浏览器窗口中执行$('.class1.class2').val(),它将返回预期的默认值.

如果我执行((JavascriptExecutor)驱动程序).executeScript("$('.class1.class2').val()")它返回null.如果我执行driver.driver.findElement(By.cssSelector(".class1.class2")).getText()它返回null.

所以看起来Angular正确地填充了DOM(就jQuery而言),但是Selenium Web Driver无法读取它.

注意:在我尝试阅读之前,我确认我有一个元素并且它是可见的.

任何帮助表示赞赏.

jquery selenium input angularjs

4
推荐指数
1
解决办法
7107
查看次数

jboss 7.1 xalan问题?

我试图在JBoss7上创建一个基于Apache Jena的应用程序。

Apache Jena使用Xalan 2.11.0 JBoss 7附带2.7.1

当我尝试调用该应用程序时,出现异常,其根源为:

org.apache.xerces.impl.dv.DVFactoryException:模式工厂类org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl不从SchemaDVFactory扩展

我怀疑这是因为版本不同。我通读了模块文档(https://docs.jboss.org/author/display/MODULES/Introduction),并尝试更改Xalan 2.11.0,但没有运气:Jboss刚启动时就冻结了。是否有人成功完成了此任务,或者是否有人知道如何覆盖Xalan进行部署?

谢谢

java jboss xalan jboss7.x

2
推荐指数
1
解决办法
2954
查看次数

标签 统计

java ×2

angularjs ×1

input ×1

interface ×1

jboss ×1

jboss7.x ×1

jquery ×1

junit ×1

selenium ×1

testing ×1

xalan ×1