Tag: unit testing

实例变量的Setter和getters的Junit测试

为对象内的实例变量的setter和getter创建测试用例时。 什么是最好的方法? 在这里,我在我的测试中使用get和set方法。 这会是糟糕的测试策略吗? /** * Test of setFlightNumber method, of class Flight. */ @Test public void testSetFlightNumber() { System.out.println(“setFlightNumber”); int flightNumber = 1000; Flight instance = new Flight(); instance.setFlightNumber(flightNumber); // TODO review the generated test code and remove the default call to fail. assertEquals(instance.getFlightNumber(), flightNumber); } /** * Test of getFlightNumber method, of class […]

自动检查equals,hashCode和compareTo的一致性的技巧?

我很清楚合同需要确保hashCode与equals一致,并且equals与compareTo一致。 但是,这在实践中经常被违反 。 是否有可以自动测试此一致性的工具,技术或库? 我怀疑不幸的是答案是“不”,但能够对这种可以利用库调用或框架的东西进行unit testing而不是需要手动编写自定义测试是有用的。每个重要的案例。 如果我不清楚我的一致性是什么意思,对于hashCode和equals ,请参考以下内容: 如果两个对象根据equals(Object)方法相等,则对两个对象中的每一个调用hashCode方法必须生成相同的整数结果。 对于equals和compareTo我参考以下内容: 当且仅当e1.compareTo(e2)== 0具有与c的每个e1和e2的e1.equals(e2)相同的布尔值时,C类的自然排序被认为与equals一致。

Mockito Matchers之间有什么区别是A,any,eq和同样的?

我很困惑他们之间有什么区别,在哪种情况下选择哪一个。 有些差异可能很明显,比如any和eq ,但我把它们都包括在内只是为了确定。 我想知道他们之间的差异,因为我遇到了这个问题:我在Controller类中有这个POST方法 public Response doSomething(@ResponseBody Request request) { return someService.doSomething(request); } 并希望在该控制器上执行unit testing。 我有两个版本。 第一个是简单的,就像这样 @Test public void testDoSomething() { //initialize ObjectMapper mapper //initialize Request req and Response res when(someServiceMock.doSomething(req)).thenReturn(res); Response actualRes = someController.doSomething(req); assertThat(actualRes, is(res)); } 但是我想使用像这样的MockMvc方法 @Test public void testDoSomething() { //initialize ObjectMapper mapper //initialize Request req and Response res when(someServiceMock.doSomething(any(Request.class))).thenReturn(res); […]

自动生成.NET和Java的unit testing用例

有一个很好的工具来生成unit testing用例,例如.NET或Java项目,它会生成unit testing用例,几乎可以覆盖100%的代码覆盖率。 测试用例的数量可以与代码的圈复杂度成正比(循环嵌套和条件越高,圈复杂度越高),其中圈复杂度越高,生成的测试用例集越大。 我不希望它完全正常运行(比如说我要构建unit testing并在生成后运行它),但是我会说它可以在测试用例中有一个模板样式来修改适合您的预期需求的情况。 但它也应该有一个适当的设置和拆卸方法,并且足以检测是否应该使用unit testing的模拟对象,如果存在任何依赖性。 那么,是否存在这样的工具?

运行JUnit @Test方法的子集

我们使用JUnit 4进行测试:我们的类不是TestCase的子类,并且它们具有使用@Test注释的公共方法。 我们有一个包含许多@Test方法的文件。 能够通过命令行中的Ant运行它们的子集会很好,这是JUnit 3的这个配方的样式: ant runtest -Dtest=MyTest -Dtests=testFoo,testBar http://today.java.net/pub/a/today/2003/09/12/individual-test-cases.html 我一直试图想办法用Javareflection等来实现这一点。因为似乎没有任何方法可以“隐藏” @Test方法或在运行时删除它们的注释,唯一的选择似乎是使用ClassLoader的defineClass方法,看起来相当困难。 PS在这种情况下,正确的事情是分割文件,但有其他选择吗? 谢谢你的时间。

测试Java套接字

我正在开发一个网络应用程序,我想让unit testing正确。 这个时候我们会这样做,你知道吗? 🙂 不过,我在测试网络连接时遇到了麻烦。 在我的应用程序中,我使用普通的java.net.Socket 。 例如: import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class Message { byte[] payload; public Message(byte[] payload) { this.payload = payload; } public boolean sendTo(String hostname, int port) { boolean sent = false; try { Socket socket = new Socket(hostname, port); OutputStream out = socket.getOutputStream(); out.write(payload); socket.close(); […]

Swing UI的unit testing框架

测试UI很困难。 您认为Swing最好的unit testing框架是什么?

assertEquals(obj,obj)返回失败的测试

嗯,我有一个货币对象,允许我添加其他货币对象。 我在java中尝试使用assertEquals()来测试我的代码是否正常,但后来失败了。 我非常肯定我的代码是正确的( System.out.println返回正确的答案),我想我只是以错误的方式使用assertEquals 。 T_T 如果我想知道myObj1 == myObj2是否适用于测试,我究竟能使用什么? **in my test.java** assertEquals(new Money(money1.getCurrency(),new Value(22,70)),money1.add(money2)); **in my money class** public class Money { Currency currency; Value value; //constructor for Money class public Money(Currency currency, Value value) { super(); this.currency = currency; this.value = value; } public Currency getCurrency() { return currency; } public void setCurrency(Currency […]

自动assembly时,Spring集成测试速度很慢

我正在尝试加速我们环境中的集成测试。 我们所有的课程都是自动assembly的。 在我们的applicationContext.xml文件中,我们定义了以下内容: …additional directories 我注意到Spring正在扫描上面指出的所有目录,然后迭代每个bean并缓存每个bean的属性。 (我从spring开始查看DEBUG消息) 因此,以下测试大约需要14秒才能运行: public class MyTest extends BaseSpringTest { @Test def void myTest(){ println “test” } } 有没有办法延迟加载配置? 我尝试添加default-lazy-init=”true”但这不起作用。 理想情况下,只实例化测试所需的bean。 提前致谢。 更新 :我之前应该说过,我不想为每个测试都有一个上下文文件。 我也不认为只有测试的上下文文件才有效。 (此测试上下文文件最终会包含所有内容)

最新的unit testing框架EJB3 / JPA

使用EJB 3 / JPA启动新项目,主要是无状态会话bean和批处理作业。 我过去在标准的Java webapps上使用过JUnit,它看起来效果很好。 在EJB2中,unit testing很痛苦,并且需要一个运行容器(如JBoss)来进行调用。 既然我们将在EJB3 / JPA中工作,我想知道公司正在使用什么来编写和运行这些测试。 Junit和JMock是否仍然被认为是相关的,还是有其他新的框架,我们应该调查?