假设定义了接口
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类中.
有没有关于如何实施此类测试的最佳实践?
我有一个使用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无法读取它.
注意:在我尝试阅读之前,我确认我有一个元素并且它是可见的.
任何帮助表示赞赏.
我试图在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进行部署?
谢谢