`
温柔一刀
  • 浏览: 863363 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

webwork 下载文件的单元测试问题

阅读更多

写了一个action负责文件下载的方法,大概代码如下这样子:

java 代码
  1. public class TravelAdminUploadAction extends BaseAction{   
  2.   
  3.     private Resource resource;   
  4.   
  5.     private ResourceService resourceService;       
  6.        
  7.     private FileInputStream inputStream;   
  8.        
  9.     private String attachmentName;        
  10.   
  11.     public String downLoadFile()  throws Exception {   
  12.         resource = resourceService.getResource(id);    
  13.         if(resource.getSumLoadCount() != null ){   
  14.             resource.setSumLoadCount(resource.getSumLoadCount() + 1 );   
  15.         }else{   
  16.             resource.setSumLoadCount(1);   
  17.         }   
  18.         resourceService.updateResource(resource);   
  19.         attachmentName = URLEncoder.encode(resource.getAttachmentName(),"UTF-8");   
  20.         File input = new File(resource.getResourceUrl());   
  21.         inputStream  = new FileInputStream(input);   
  22.         return SUCCESS;   
  23.     }    
  24.     。。。。。。
  25. }   

写的测试代码大概如下这样子:

java 代码
  1. public class TravelAdminUploadActionTest extends TestCase {   
  2.   
  3.     private MockControl control;   
  4.   
  5.     private ResourceService resourceService;         
  6.   
  7.     protected void setUp() throws Exception {   
  8.         control = MockControl.createControl(ResourceService.class);   
  9.         resourceService = (ResourceService) control.getMock();   
  10.     }   
  11.   
  12.     public void testDownLoadFile() throws Exception {   
  13.         Resource resource = new Resource();   
  14.         resource.setAttachmentName("xxxxxx");   
  15.         resource.setResourceUrl("c://WINDOWS/winhelp.exe");   
  16.         resourceService.getResource(resource.getId());   
  17.         control.setReturnValue(resource);      
  18.         resourceService.updateResource(resource);    
  19.         control.setDefaultVoidCallable();   
  20.         control.replay();   
  21.         TravelAdminUploadAction action = new TravelAdminUploadAction(); 
  22.         action.setId(resource.getId());   
  23.         action.setInputStream(new FileInputStream(new File(   
  24.                 "c://WINDOWS/winhelp.exe")));      
  25.         action.setResourceService(resourceService);   
  26.         action.setResource(resource);   
  27.         assertEquals(Action.SUCCESS, action.downLoadFile());   
  28.         control.verify();   
  29.     }      
  30. }  

测试是通过了,但是单元测试是不应该跟环境偶合在一起的,

现在测试环境里面用了c://WINDOWS/winhelp.exe这个文件,我特意找的window上都有的文件,

但是放在linux下面的话,这个测试肯定就通不过了,

不知道各位有没有碰到这样的情况,是怎样解决的,可否指点一二

 

分享到:
评论
2 楼 温柔一刀 2007-03-06  
谢谢Readonly,你那个方法不适合我这个测试,我需要的是一个string字符串类型文件地址,我用了相对路径就可以了
1 楼 Readonly 2007-03-06  
把需要upload的文件放到ClassPath下面,然后测试代码里面用ClassLoader读入:
this.getClass().getClassLoader().getResourceAsStream("yourfile.exe")

相关推荐

    webwork中文帮助文档

    - 提供了Mock Object工具,方便对Action进行单元测试。 - 通过日志框架如Log4j进行调试,追踪应用运行过程。 10. **最佳实践**: - 使用ActionSupport基类,它提供了很多默认行为和便利方法。 - 尽量保持Action...

    WebWork docs 2 -- webWork 详细的说明文档

    11. **测试**:WebWork支持单元测试和集成测试,文档会讲解如何编写和运行针对WebWork应用的测试。 12. **最佳实践**:除了技术细节,文档还会提供一些开发和设计的最佳实践,帮助开发者遵循良好的编程习惯。 通过...

    webwork中文文档

    从给定的文件信息来看,标题和描述都指向了“webwork中文文档”,这暗示了文档的主要内容将围绕WebWork框架展开。WebWork是一个开源的Java Web应用开发框架,它在2000年初非常流行,是Struts框架的一个替代方案,...

    webwork-1.4-src.zip_webwork_webwork s_webwork.zip_webwork1.4.zip

    10. **测试支持**:WebWork1.4版本提供了JUnit集成,便于进行单元测试和集成测试,确保代码的质量。 "www.pudn.com.txt"可能是一个文档,可能包含了一些关于WebWork的学习资源或教程链接。而"webwork"这个文件可能...

    webwork2中文文档

    8. **测试与调试**:提供关于单元测试、集成测试和调试WebWork2应用的方法,可能包括JUnit和Mockito的使用。 9. **最佳实践与性能优化**:分享一些开发WebWork2应用的最佳实践,以及如何优化应用程序性能,如减少...

    webwork2官方文档中文版

    9. **测试工具**:WebWork2提供了单元测试和集成测试的支持,便于开发者进行质量保证。 10. **最佳实践和示例**:官方文档会包含一系列最佳实践指导和示例代码,帮助开发者快速上手并避免常见陷阱。 通过阅读...

    webwork2.0 webwork2.0 帮助文档

    WebWork支持对Action进行单元测试,你可以使用JUnit或其他测试框架。测试Action时,可以模拟HTTP请求,直接调用Action方法并验证结果和副作用。WebWork提供了Mock Objects和工具来简化测试过程。 这只是WebWork 2.0...

    WebWork教程开发资料

    这通常包括下载WebWork的JAR文件并将其添加到项目的类路径中,配置web.xml以启动WebWork的前端控制器。然后,创建一个简单的"HelloWorld"应用,这通常是学习新框架的第一步。在WebWork中,这将涉及创建一个Action类...

    webwork核心技术文档

    6. **Action的单元测试**:WebWork提供了一套测试工具,使得开发人员可以方便地对Action进行单元测试。这包括模拟HTTP请求,设置ActionContext,以及验证Action执行后的结果。通过单元测试,可以确保Action的功能...

    webwork详细讲解.doc

    - **Action的单元测试**:为了确保Action的正确性,可以通过单元测试的方式进行验证。 - **ResultType**:用于指定Action执行后返回的结果类型,如转发、重定向等。 - **表达式与EL和OGNL**:OGNL是Xwork提供的强大...

    WebWork教程

    它包括了WebWork基础、安装指南、HelloWorld示例、Action动作的介绍以及如何进行Action的单元测试等。此外,还涵盖了ResultType(结果类型)的使用、表达式语言EL和OGNL的介绍以及值堆栈(OgnlValueStack)的概念。...

    webwork中文参考手册

    9. **测试支持**:WebWork提供了测试工具和API,方便进行单元测试和集成测试。 “webwork中文参考手册”很可能详细讲解了上述概念,并配有实例和代码示例,帮助初学者逐步理解并掌握WebWork的使用。在学习过程中,...

    webwork所需jar包

    6. **junit.jar**(可能在测试环境中):单元测试框架,用于对WebWork组件进行测试。 7. **其他的依赖JAR包**:如log4j.jar(日志记录)、commons-lang.jar(通用语言工具)、commons-fileupload.jar(文件上传)等...

    webwork教程

    - WebWork支持Action的单元测试,有助于确保业务逻辑的正确性。 - **ResultType**: - 用于定义Action执行完成后返回的结果类型。 - 支持多种结果类型,如JSP、Velocity、FreeMarker等。 - **表达式语言**: - ...

    webwork文档

    此外,还有用于帮助1.x版本向2.x版本迁移的`webwork-migration.jar`文件,以及包含API文档、单元测试文档等的`docs`目录,以及源码和运行时依赖的`lib`和`src`目录。 #### 集成至Web容器 作为一款J2EE Web框架,...

    WebWork2配置

    9. **测试与调试**:WebWork2提供了良好的测试支持,你可以配置Action的模拟对象以进行单元测试,同时通过日志配置来帮助调试。 10. **安全设置**:WebWork2允许你配置安全性相关的设置,如防止XSS攻击、CSRF防护等...

    webwork所需要的包

    这个压缩包包含的是一组经过验证可用的WebWork所需的JAR文件,避免了用户在配置过程中因使用错误的或不可用的库而遇到的问题。 在WebWork框架中,JAR文件扮演着核心组件的角色,它们提供了框架的运行时环境和各种...

    spring与webwork的集成

    - **易于测试**:由于 Spring 管理了 Action 的生命周期和依赖,可以方便地进行单元测试,只需配置好 Mock 对象即可。 - **重用**:Spring 提供的事务管理、AOP(面向切面编程)等功能可以被 Action 类轻松利用,...

    Webwork2_guide

    10. **测试(Testing)**:框架提供了测试工具和API,便于对Action进行单元测试,确保代码的质量和功能的正确性。 通过“Webwork2_guide.pdf”,读者将能够深入学习如何利用Webwork2的各种特性,包括Action的设计、...

    webwork 2.1.7.jar

    8. **Testing and Debugging**:WebWork提供了单元测试工具和调试工具,便于开发和维护高质量的代码。 9. **ActionSupport Class**:这是WebWork提供的一个基类,包含了一些常用的方法,如验证、消息管理等,开发者...

Global site tag (gtag.js) - Google Analytics