我想澄清TDD范围内的重构. 之前: class Somclass{ public void sendMessage(){ WebServiceStub stub = new WebServiceStub(); ... stub.sendMsg(); } } 后: class Somclass{ private WebServiceStub stub; public void s
我正在使用Struts2框架,并希望对下面的execute方法进行单元测试: public String execute() { setDao((MyDAO) ApplicationInitializer.getApplicationContext().getBean("MyDAO")); setUserPrincipal(); //fetches attribute from request and stores it in a var setG
是否可以模拟Android Camera类? @Override public void setUp() { _camera = Mockito.mock(Camera.class); } 无法生成模拟(Mockito的createProxyClass中的ExceptionInitializerError). 我应该在相机周围创建一些包装器(不是我最喜欢的解决方案,真的很想嘲笑这个类……)? 或者,
Mockito不允许嘲笑最终方法. 在代码中使用最终方法被认为是不好的做法吗?为什么? 我不想仅仅为了使测试代码工作而改变实现细节,但是,测试框架通常会有这些规则来鼓励更好的编码实践.解决方法:最终的方法绝对不是一般的做法:它们传达了一个关于方法的行为和语义的特定信息 – 也就是说
我有一个类CollectionObject创建一个ArrayList. public class CollectionObject { private List<String> collectionObject; public CollectionObject() { collectionObject = new ArrayList<String>(); } public List<String> getColle
我需要模拟以下枚举: public enum PersonStatus { WORKING, HOLIDAY, SICK } 这是因为它在我正在测试的以下类中使用: 被测班: public interface PersonRepository extends CrudRepository<Person, Integer> { List<Person> findByStatus(PersonStatus perso
我有两节课: public MyService { @Autowired private MyDao myDao; private List<Items> list; @PostConstruct private void init(){ list = myDao.getItems(); } } 现在我想在单元测试中涉及MyService,所以我会模仿MyDao的行为.
我查看了论坛,但无法找到为什么会这样 我有 public class AImpl implements A{ @Autowired B bImpl; protected void doSomething(){ String s = "test"; String d = b.permuteString(s); System.out.println(s.substring(1)); } } public clas
我是软件测试的新手.在一个教程中,我读到我可以测试一些像这样的方法: @Test public void testMultiply() { MyClass tester = new MyClass(); assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5)); } 所以我必须将一些参数传递给方法并获得返回值. 但在我的
在MVP模式中描绘您的演示者订阅返回观察者的服务的情况: public void gatherData(){ service.doSomeMagic() .observeOn(Schedulers.io()) .subscribeOn(AndroidSchedulers.mainThread()) .subscribe(new TheSubscriber()); } 现在,TheSubscriber类从视图中
我有一个我这样嘲笑的课: @Mock private MyClass1 mockMyClass1; 说这个类看起来像这样: public class MyClass1 { @Autowired private MyInnerClass myInnerClass; } 当我模拟MyClass1时,MyInnerClass将被初始化为null.是否可以用另一个模拟对象来初始化该私有字段?我希望myI
在进行模拟调用之前自动更新时间戳的最佳方法是什么? 这是我试图测试的一些虚拟代码: public class ThingWithATimestamp { public Long timestamp; public String name; public ThingWithATimestamp(String name) { this.name = name; } } public class
我想模拟我的存储库上提供的查询,如下所示: @Test public void GetByEmailSuccessful() { // setup mocks Mockito.when(this.personRepo.findAll() .stream() .filter(p -> (p.getEmail().equals(Mockito.any(String.class)))) .find
我在我的单元测试中抛出一个Exception,但是在抛出之后,我仍然希望能够继续测试 doThrow(new Exception()).when(myMock).myMethod(); myMock.myMethod(); System.out.println("Here"); // this is never called // Do verify and asserts 是否有可能做到这一点?解决方法:你可以抓
由于我是Spring Test MVC的新手,我不明白这个问题.我从http://markchensblog.blogspot.in/search/label/Spring开始采用以下代码 变量mockproductService不是从Application Context注入的,它在使用@Mock注释和获取断言错误时包含空值. 我目前遇到的断言错误如下: java.lang.Asserti
我有一个控制器,提供下载文件的功能. @ResponseBody public void downloadRecycleResults(String batchName, HttpServletResponse response) throws Exception { File finalResultFile = null; // code here generates and initializes finalResultFile for batchName
我有以下测试方法: MyClass myClass= Mockito.mock(MyClass.class); Mockito.when(myClass.methodUsedInMethodBeingTested(Matchers.any(MyTypeParam.class))).thenReturn(Collections.<X, Y> emptyMap()); assertNull(myClass.methodToTest(myObject)); Mockito.verify(myCl
我是mockito的新手.我的问题是如何使用Mockito模拟for循环? 对于Eg:这是主类: import java.util.HashSet; import java.util.Set; public class stringConcatination { public static void main(String[] args) { Set<String> stringSet = new HashSet();
我有以下课程: public class Plugin { private DistributionManager manager; public void init(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); manager = context.get
我有一个while循环如下 while (nodeIterator.hasNext()) 我已经模拟了这个方法hasNext返回true,以便我可以在while循环中测试代码,但现在问题是每次它返回true并且这个循环永远不会结束.请告诉我,无论如何我可以确保只调用一次这个方法,如果没有,那么在第一次执行后如何返回false
给定以下@Component类: @Component public class MovieFinderImpl implements MovieFinder { @Autowired private Movie movie; @Override public List<Movie> findAll() { List<Movie> movies = new ArrayList<>(); m
我正在使用Spring的“spring-test-mvc”库来测试Web控制器.我有一个非常简单的控制器,它返回一个JSON数组.然后在我的测试中我有: @Test public void shouldGetAllUsersAsJson() throws Exception { mockMvc.perform(get("/v1/users").accept(MediaType.APPLICATION_JSON))
我正在嘲笑如下的抽象类: myAbstractClass = Mockito.mock(MyAbstractClass.class,Mockito.CALLS_REAL_METHODS); 问题是MyAbstractClass有一些通过EJB注释注入的依赖项,并且没有setter.有没有办法注入依赖项? @InjectMocks不适用于抽象类.解决方法:由于无法实例化Abstract类,因此无
我有一个使用Spring的依赖注入的Java应用程序.我想模拟一个bean,并验证它是否接收到某些方法调用. 问题是Mockito没有在测试之间重置模拟,所以我无法正确验证方法调用. 我的单位在测试中: public class MyClass { @Resource SomeClientClass client; public void myMethod()
我想在片段中测试一个方法但是在这个方法中我称之为Toast: Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show(); 现在我想用JUnit和Powermockito测试方法.为此,我想忽略吐司.我试过这样:嘲笑Toast并忽略toast.show() Toast toastMock = mock(T