我知道这将是一个长镜头,但我想我会尝试.没有人知道任何自动化测试的东西为iPhone模拟器?我喜欢它,如果有像Selenium这样的东西,但对于iPhone模拟器.我不需要像断言那样花哨的东西,只是可以伪造屏幕上的水龙头的东西,所以我可以停止滥用我的触控板.:)
有没有办法向iOS设备发送点击或关键事件(如Android上的adb)?
iphone testing automated-tests ios-simulator ios-ui-automation
我知道如何制作Fibonacci数列表,但我不知道如何测试给定数字是否属于斐波纳契列表 - 记住的一种方法是生成fib列表.数字达到那个数字并查看它是否属于数组,但必须有另一种更简单,更快速的方法.
有任何想法吗 ?
我有一个像这样的表驱动测试用例:
func CountWords(s string) map[string]int
func TestCountWords(t *testing.T) {
var tests = []struct {
input string
want map[string]int
}{
{"foo", map[string]int{"foo":1}},
{"foo bar foo", map[string]int{"foo":2,"bar":1}},
}
for i, c := range tests {
got := CountWords(c.input)
// TODO test whether c.want == got
}
}
Run Code Online (Sandbox Code Playgroud)
我可以检查长度是否相同,并编写一个循环来检查每个键值对是否相同.但是当我想将它用于另一种类型的地图时(例如map[string]string),我必须再次编写此检查.
我最终做的是,我将地图转换为字符串并比较字符串:
func checkAsStrings(a,b interface{}) bool {
return fmt.Sprintf("%v", a) != fmt.Sprintf("%v", b)
}
//...
if checkAsStrings(got, c.want) {
t.Errorf("Case #%v: Wanted: %v, got: %v", i, c.want, got)
}
Run Code Online (Sandbox Code Playgroud)
这假设等效映射的字符串表示是相同的,在这种情况下似乎是正确的(如果键是相同的,那么它们散列到相同的值,因此它们的顺序将是相同的).有一个更好的方法吗?在表驱动测试中比较两个映射的惯用方法是什么?
有哪些选项可用于构建使用Java Swing编写的GUI的自动化测试?
我想测试一些使用NetBeans Swing GUI Builder编写的GUI,因此可以在不需要对被测代码进行特殊篡改的情况下工作.
为接口编写junit测试的最佳方法是什么,以便它们可用于具体的实现类?
例如,你有这个接口和实现类:
public interface MyInterface {
/** Return the given value. */
public boolean myMethod(boolean retVal);
}
public class MyClass1 implements MyInterface {
public boolean myMethod(boolean retVal) {
return retVal;
}
}
public class MyClass2 implements MyInterface {
public boolean myMethod(boolean retVal) {
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
您如何针对界面编写测试,以便将其用于课程?
可能性1:
public abstract class MyInterfaceTest {
public abstract MyInterface createInstance();
@Test
public final void testMyMethod_True() {
MyInterface instance = createInstance();
assertTrue(instance.myMethod(true));
}
@Test
public final void testMyMethod_False() {
MyInterface instance = createInstance(); …Run Code Online (Sandbox Code Playgroud) 从Android Studio 1.1rc开始,有单元测试支持,我想知道Android Instrumentation测试和单元测试之间有什么区别.
据我了解:
单元测试对于测试不调用Android API的代码非常有用,而Android测试测试则是集成测试,用于测试Android API特定元素或GUI组件.
但是,如果你在单元测试中使用像Robolectric或Mockito这样的框架,你可以测试Android代码(不需要设备)如果我没有弄错的话.
这是正确的,还是有更大的区别?如果是这样,每个人的用途是什么?
testing android integration-testing unit-testing android-studio
当我运行测试时,我收到错误"命令行太长".如果我将Run/Debug配置中的"Shorten命令行"方法设置为特定方法或类的"JAR清单",但是如何为整个项目设置它或者是否有IDE全局设置?
我正在用Java编程,我的应用程序正在大量使用DB.因此,能够轻松测试我的数据库使用对我来说非常重要.
DB测试的全部内容是什么?对我来说,他们应该提供两个简单的要求:
那么,似乎我所需要的只是一个数据库.
但实际上,我不喜欢,因为使用数据库进行测试的困难很少:
所以,你可以弄清楚我在测试时不喜欢数据库(当然,我必须在某些方面达到这个目的,但是在我发现大多数错误使用之后,我宁愿在我的测试后到达那里.其余的测试方法).但我在寻找什么?
我正在寻找一种使用文件系统或虚拟内存来模拟数据库,模拟数据库的方法.我想也许有一个Java工具/包允许简单构建(使用代码接口)每个测试的数据库模拟,模拟表和行,SQL验证,以及用于监视其状态的代码接口(而不是使用SQL) ).
你熟悉这种工具吗?
编辑:谢谢你的回答!虽然我要求一个工具,你也提供了一些关于这个问题的提示:)我需要一些时间来查看你的报价,所以我现在不能说你的答案是否令人满意.
无论如何,这里是我正在寻找的更好的视图 - 想象一个名为DBMonitor的类,它的一个功能是查找表中的行数.这是一个虚构的代码,说明我如何使用JUnit测试该功能:
public class TestDBMonitor extends TestCase {
@Override
public void setUp() throws Exception {
MockConnection connection = new MockConnection();
this.tableName = "table1";
MockTable table = new MockTable(tableName);
String columnName = "column1";
ColumnType columnType = ColumnType.NUMBER;
int columnSize = 50;
MockColumn column = new MockColumn(columnName, columnType, columnSize);
table.addColumn(column);
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我有一个我用Maven构建的项目,它使用Hibernate(和Spring)从数据库中检索数据等.
我在项目中对DAO的"测试"扩展了Spring,AbstractTransactionalDataSourceSpringContextTests因此可以将DataSource连接到我的测试类中,以便能够实际运行查询/ Hibernate逻辑,获取数据等.
在其他几个项目中,我使用这些类型的测试与HSQL数据库(内存中或指向文件)一起使用,以便能够有效地测试实际的数据库查询逻辑,而无需依赖外部数据库.这很有用,因为它可以避免任何外部依赖关系,并且在运行测试之前数据库的"状态"(每个都包含在回滚的事务中)都已定义良好.
我很好奇关于组织这些测试的最佳方法,这些测试对于Maven来说实际上是一种松散的集成测试.保持这些测试感觉有点脏src/test/java,但从我读过的内容来看,似乎没有一个一致的策略或实践来组织与Maven的集成测试.
从我到目前为止所看到的,似乎我可以使用Failsafe插件(或Surefire的第二个实例)并将其绑定到integration-test阶段,并且我还可以绑定自定义启动或关闭逻辑(例如用于启动/停止HSQL实例)pre-integration-test或post-integration-test.但是,这真的是最好的方法吗?
所以我的问题基本上是 - 用Maven组织这个的普遍接受的最佳做法是什么?我在文档中找不到任何一致的答案.
我想要的是:
test阶段仅运行单元测试pre-integration-test和post-integration-test这是我的问题:是否有可能以某种方式检查动态附加事件监听器的存在?或者我如何检查DOM中"onclick"(?)属性的状态?我已经像StackOverflow一样搜索了互联网,但是没有运气.这是我的HTML:
<a id="link1" onclick="linkclick(event)"> link 1 </a>
<a id="link2"> link 2 </a> <!-- without inline onclick handler -->
Run Code Online (Sandbox Code Playgroud)
然后在javascript中我将动态创建的事件监听器附加到第二个链接:
document.getElementById('link2').addEventListener('click', linkclick, false);
Run Code Online (Sandbox Code Playgroud)
代码运行良好,但我检测连接的侦听器的所有尝试都失败了:
// test for #link2 - dynamically created eventlistener
alert(elem.onclick); // null
alert(elem.hasAttribute('onclick')); // false
alert(elem.click); // function click(){[native code]} // btw, what's this?
Run Code Online (Sandbox Code Playgroud)
jsFiddle就在这里.如果单击"添加onclick for 2"然后单击"[link 2]",则事件会激活,但"测试链接2"始终报告为false.有人可以帮忙吗?
testing ×10
java ×4
unit-testing ×3
algorithm ×1
android ×1
c++ ×1
database ×1
dom-events ×1
equivalence ×1
fibonacci ×1
go ×1
interface ×1
iphone ×1
javascript ×1
jdbc ×1
junit ×1
maps ×1
math ×1
maven-2 ×1
settings ×1
swing ×1
table-driven ×1