Tag: junit

在JMockit中模拟测试类的私有方法

在我的测试类(CUT) – 一个ejb – 我有一个私有方法“getConnection”。 我想测试CUT的另一种方法,但这种方法会先失败。 我尝试过如下所示,但“调用”是错误的。 我不想调用该方法,我想将其存根。 但是怎么样? (’连接’是存根) new NonStrictExpectations() { { invoke(archivingBean, “getConnection”);result = connection; } }; archivingBean.moveCreditBasic2Archive(new Date());

使用GWT和GAE进行JUnit测试

我想要一些JUnit测试(用GWT创建)来联系一个servlet(里面有GAE调用)。 当我运行测试时,我得到以下堆栈跟踪: java.lang.NullPointerException at com.google.appengine.api.NamespaceManager.get(NamespaceManager.java:101) at com.google.appengine.api.memcache.BaseMemcacheServiceImpl.getEffectiveNamespace(BaseMemcacheServiceImpl.java:65) at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.doGet(AsyncMemcacheServiceImpl.java:295) at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.contains(AsyncMemcacheServiceImpl.java:283) at com.google.appengine.api.memcache.MemcacheServiceImpl.contains(MemcacheServiceImpl.java:44) at com.peerkesoftware.etheria.web.server.model.UpdateTimer.(UpdateTimer.java:17) at com.peerkesoftware.etheria.web.server.UpdateTimerServlet.(UpdateTimerServlet.java:12) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at […]

由于公共私人领域的矛盾,使用Junit @Rule的CdiUnit测试是不可能的

以下代码段足以重现我的问题: 我将thrown属性设置为public并获取错误org.jboss.weld.exceptions.DefinitionException: WELD-000075: Normal scoped managed bean implementation class has a public field 或者我删除public修饰符并获取错误org.junit.internal.runners.rules.ValidationError: The @Rule ‘thrown’ must be public. 我还试图让public修饰符到位,并在类上添加@Dependent注释范围,但得到错误org.jboss.weld.exceptions.DefinitionException: WELD-000046: At most one scope may be specified on [EnhancedAnnotatedTypeImpl] public @Dependent @ApplicationScoped @RunWith 我删除了所有不必要的代码,但这是一个非常复杂的unit testing,通过CDI进行模拟,服务注入,并且一些测试方法预计会引发exception。 import org.jglue.cdiunit.CdiRunner; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; @RunWith(CdiRunner.class) public class FooBarTest { @Rule public ExpectedException […]

在JUnit测试时,对@Component类进行排除过滤?

是否可以排除@Component注释类? 我想从JUnit测试中排除一个特殊类。 我的项目有一个用@Component注释的类xEventHandler ,我不希望spring在junit测试时使用这个类。 我的ApplicationTestContext.xml如下所示: … … 但是,由于@Component注释,类被输入(例如,当我从该类中删除@Component时工作)。 我该怎么办呢?

Junit:为删除实体的方法编写测试?

对于下面的代码,我可以编写哪些最详尽的测试? public void deleteFromPerson(person person) { person = personRepository.returnPerson(person.getId()); personRepository.delete(person); } 此方法位于a service类中。 该方法调用JpaRepository ,然后在实体上调用它的delete()方法。 如果无法测试实体是否被删除,是否还有其他 tests cases可以在该方法上运行?

从Code运行测试时在Eclipse中显示JUnit视图

当我在Eclipse中运行我的Testclass时,我得到了显示树结构的JUnit视图以及测试是否成功。 如果我从代码开始我的测试: JUnitCore core = new JUnitCore(); core.run(SimpleTests.class); 视图没有显示。 我可以改变吗?

validation在子类上调用此方法时是否调用了重写的超类方法

我将使用此示例显示我的问题: 我有一个方法foo的类。 该类有一个子类,它会覆盖此方法。 子类’方法调用超类’方法。 我可以validation吗? 我不想测试超类中的foo 。 我只需要validation它是否被调用。 我知道重构可能会有所帮助( 有利于组合而非inheritance等 ),但我无法做到这一点。 有没有办法实现我的需要? 以下是我尝试过的简单示例 package tmp; import org.junit.Test; import org.mockito.Mockito; import static org.mockito.Mockito.times; public class Example { @Test public void test() { // given ChildClass childClass = new ChildClass(); ChildClass spyChildClass = Mockito.spy(childClass); // when spyChildClass.foo(100); // then Mockito.verify((BaseClass) spyChildClass, times(1)).foo(101); } } abstract class BaseClass […]

Spring MVC:如何从返回String的控制器方法unit testingModel的属性?

例如, package com.spring.app; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Handles requests for the application home page. */ @Controller public class HomeController { @RequestMapping(value = “/”, method = RequestMethod.GET) public String home(final Model model) { model.addAttribute(“msg”, “SUCCESS”); return “hello”; } } 我想使用JUnit从home()测试model的属性及其值。 我可以将返回类型更改为ModelAndView以使其成为可能,但我想使用String因为它更简单。 但这不是必须的。 无论如何检查model而不改变home()的返回类型? 或者它无法帮助?

如何对预期在applet安全管理器中运行的Java代码进行unit testing

我有一些Java库代码,有时作为未签名的applet运行。 因此,并不总是允许执行某些操作(例如检查系统属性)。 我想使用类似Applet的安全管理器运行一些unit testing,以便我可以validation代码是执行任何受限操作,还是正确处理任何安全exception。 使用真实的Security-Manager配置运行这些unit testing的最佳方法是什么? 优选的解决方案是可以与JUnit集成的东西。

如何通过Junit获得成功并暂停?

@Test (expected=TimeoutException.class,timeout=1000) public void fineForFiveSeconds() { foo.doforever(); fail(“This line should never reached”); } 这是我的测试代码。 我想要的是运行doforever()一段时间然后让测试成功。