`
java--hhf
  • 浏览: 310073 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

WPS一笔

阅读更多

“昨晚”去参加了WPS的笔试,一共就三道题,现在回想下还是比较惭愧的。

1、如何判断两条直线的关系(重合、平行、香蕉、垂直)

一般的思路就是先分别取两条直线上的两个点,求出a1b1a2b2然后再比较两个斜率是否相等,

If(a1 == a2){

If(b1 == b2)

直线重合

Else

直线平行

Else

If((a1*a2 + b1*b2)==1)

直线垂直

Else

直线相交

或者说使用向量来判断

 =cos然后判断值

If(等于0

垂直

Else if(等于-11)

判断是平行还是重合

Else

 相交

等我写到这里的时候,监考官居然发来了善意的提示,说这道题不能用求向量来做,不然就没意义了,你好好想想出题人的意思,,我真觉得伤,感觉这句话很多含义中。。。 于是这道题就被我毁了

回来后怎么找都没找的办法,真想去问下监考官或者出题人,这噶当到底怎么破才算的。

 

2、判断两个日期之间的天数

第一眼看到这题的时候,好开心呀,好熟悉是不是。提笔就写将两个date通过getTime()方法转化为long,然后相减再除以一天的毫秒数,就是了。写完后我发现了,我玩完了,这个时间长整形是1970年以来了,那之前的呢(o)。可笑的是回来后实际操作下,发现1997年之前的就是负数的long了,原算法生效,这就是没搞透彻搞仔细的的悲哀。

贴两种方法的代码

to = (new Date(1996, 1, 1)).getTime();

    from = (new Date(1997, 1, 1)).getTime();

    System.out.println((to - from) / (1000 * 60 * 60 * 24));

 

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

    to = df.parse("8-4-25").getTime();

    from = df.parse("2008-1-20").getTime();

    System.out.println((to - from) / (1000 * 60 * 60 * 24));

 

3、写其中一个方法的完整单元测试

大家都未料到呀,这是android开发笔试,没有一道android题目暂且不说(这可能意味着进去后会有一段时间的android培训,不太会也没关系似的),但看到这道题,欲哭无泪。虽然这么说,可我还是按自己的思路写了些,主要是写了一些测试用例,将单元测试分为功能测试和容错测试,然后设计了一些实际用例,

比如说:

功能测试用例包含有,判断大月天数、小月天数、平年天数、润年天数、润年二月天数、平年二月天数

容错测试用例包含有,年份为负、月份大于12、月份小于0、日期小于0、小月的日期大于30、日期大于31

然后设计一个测试函数,对每一个测试用例给出预期输出和实际输出

System.out.println(预期输出为XXXX, 实际输出为+function());

回来后想起来Junit测试框架,也就花了点时间研究下才是。

其实,我们平常使用的eclipse里面原本就已经集成了Junit框架的,右键newother里面即可看到新建一个test case实例。具体来学习下吧

(一)Junit框架组成

JUnit 共有六个包,分别为junit.awtuijunit.extensionsjunit.frameworkjunit.runnerjunit.swinguijunit.textui

其中核心包是:

junit.framework包负责构建整个测试对象的框架

junit.runner负责驱动测试程序

经常使用的六个类或接口

Assert断言,当条件成立时assert方法保持沉默,不成立就抛出异常

Test运行Test并把结果传递给TestResult

TestListener监听测试中的事件(开始,结束,错误,失败)

TestCase测试类,每个testcase配有fixture(执行顺序是setup()testxxx()tearDown()

TestSuite运行一组test case(或者test suite),它是Test的组合,实现测试的自动化

TestResult测试中发生的所有错误或失败的展示,红的表示有错,绿的表示OK

TestRunner启动测试的用户界面,共三种显示测试结果的方式StringAWTSwing

(二)Junit使用示例

 

/*************************待测试类**************************************/
public class DataFunc {
    private int data1;
    private int data2;
    private int result;
 
    public DataFunc() {
       data1 = 0;
       data2 = 0;
       result = 0;
    }
 
     public DataFunc(int x, int y) {
       data1 = x;
       data2 = y;
     }
 
     public int add() {
        result = data1 + data2;
        return result;
     }
 
     public int substract() {
        result = data1 - data2;
        return result;
     }
 
    public int multiply() {
        result = data1 * data2;
        return result;
     }
 
    public int divide() {
        result = data1 / data2;
        return result;
    }
}
/*************************测试类**************************************/
import junit.framework.TestCase;
public class DataFuncTestCase extends TestCase {
     private DataFunc DF;
     public DataFuncTestCase() {
        super();
     }
 
     protected void setUp() {
        DF = new DataFunc(30, 20); // Fixture
     }
 
     protected void tearDown() {
         DF = null;
     }
 
     public void testadd() {
         assertEquals(50, DF.add());
     }
 
     public void testsubstract() {
         assertEquals(10, DF.substract());
     }
 
     public void testmultiply() {
         assertEquals(600, DF.multiply());
    }
 
    public static void main(String[] args) {
         // junit.textui.TestRunner.run(DataFuncTestCase.class);
        // junit.awtui.TestRunner.run(DataFuncTestCase.class);
       junit.swingui.TestRunner.run(DataFuncTestCase.class);	 
    }
}
/*********************批量执行测试类(test case)****************************/
public class TestPart {
public static Test suite() {
   	 TestSuite suite = new TestSuite();
     	suite.addTest(new DataFuncTestCase1("test1"));
     	suite.addTest(new DataFuncTestCase2("test2"));
suite.addTest(new DataFuncTestCase3("test3"));
     return suite;
   }
    public static void main(String[] args){
      junit.textui.TestRunner.run(TestPart.suite());
    //junit.awtui.TestRunner.run(TestPart.class);
    //junit.swingui.TestRunner.run(TestPart.class) ;
    }
}
/*********************批量执行测试类(test suit)****************************/
public static Test suite() {
    TestSuite suite = new TestSuite();
    suite.addTestSuite(DataFuncTestCase1.class);
    suite.addTestSuite(DataFuncTestCase2.class);
    suite.addTestSuite(DataFuncTestCase3.class);
    return suite;
}
public static void main(String[] args) {
    junit.textui.TestRunner.run(this.suite());
    // junit.awtui.TestRunner.run(this.class);
    //junit.swingui.TestRunner.run(this.class) ;
}

 

(三)Junit框架里使用了许多的设计模式,当然了,毕竟是大师的作品。在Junit框架的使用学习中,我发现很多的自动化测试需要使用到java的反射机制,于是又学了了下java反射机制,为此还有写了篇博客

http://java--hhf.iteye.com/admin/blogs/2047906

 本文主要解释一下几个问题

1、如何根据对象获得类的所有方法和属性

2、如何根据类名获得类的方法和属性

3、如何选择被反射类的构造函数 并 调用该函数获得实例

4、如何批量执行无参函数

5、如何调用指定名字的方法

6、如何调用有参的函数

7、如何反射调用类的私有方

  • 大小: 854 Bytes
  • 大小: 252 Bytes
0
0
分享到:
评论

相关推荐

    用WPS制作汉字笔画名称表.docx

    6. **制作汉字笔画名称总表**:利用WPS的“表格”功能,可以插入已截取的笔画图片,并在表格中输入对应的笔画名称和例字,这样就创建了一个完整的汉字笔画名称表。完成后的表格式样如图4所示。 7. **上传到在线素材...

    田字格模板/米字格模板(WPS/WORD)字帖 共116个打包下载

    这个压缩包名为"田字格模板/米字格模板(WPS/WORD)字帖 共116个打包下载",从标题和描述中我们可以推断出,它包含了一系列与书法练习相关的文档资源。这些模板适用于想要提升书写技巧的用户,特别是使用WPS或...

    WPS演示荧光笔标记功能使用方法.docx

    总的来说,WPS演示的荧光笔标记功能是一个实用且灵活的工具,它极大地丰富了我们在演示过程中与观众的互动,帮助我们更有效地传达信息。通过熟练掌握这一功能,你可以使你的演示更加生动和具有吸引力,提升观众的...

    WPS2005操作类模块.zip易语言项目例子源码下载

    通过对WPS2005操作类模块.zip项目的深入学习和实践,不仅可以提升易语言编程技能,还能掌握与WPS集成的关键技术,这对于有志于从事办公自动化或文档处理软件开发的人来说是一笔宝贵的财富。无论你是个人开发者、学生...

    wps和word的书法字帖模板

    本文将深入探讨“wps和word的书法字帖模板”这一主题,帮助用户更好地利用这些模板进行书法练习。 首先,我们要理解WPS(Writer Processing System)和Word。WPS是由金山软件开发的一款办公软件套件,与微软的Word...

    wps表格初级教程3

    数据排序是在WPS表格中对数据进行重新排列的一种常用操作,它可以帮助用户快速地对数据进行组织,以便于分析和展示。 **1. 简单的排序实例** - **目标**: 将成绩表按照总分从高到低进行排序,并添加名次。 - **...

    WPS演示中怎么使用荧光笔.docx

    在WPS演示中,荧光笔是一个非常实用的功能,它为用户提供了在PPT播放过程中进行高亮标注和强调的便捷方式。对于教师、讲师、商务演讲者等需要在演示过程中强调关键信息的人来说,荧光笔是提升演示效果的好助手。下面...

    在WPS演示中使用荧光笔的使用技巧.docx

    在WPS演示中,荧光笔是一个非常实用的工具,尤其对于进行讲解或演示时需要强调某些内容的用户。荧光笔功能允许用户在播放演示文稿的过程中进行实时的圈点和标注,使得观众能够更加关注重点信息。下面将详细阐述如何...

    wps高级教程

    #### 一、WPS Office 办公技巧 **1. 一切从安装开始** - **知识点**: 学习如何正确安装WPS Office软件。 - **详细内容**: 介绍了安装过程中的注意事项,如选择合适的安装路径、安装组件的选择等。 **2. 全新的账号...

    2014年计算机等级考试(一级)—WPS_OFFICE_试题集锦

    计算机等级考试(一级)WPS Office 考试概览 - **考试内容**:此考试主要针对WPS Office的基本操作技能进行考核,包括文档处理、表格制作、演示文稿设计等方面的基础知识和技能。 - **题型分布**:考试包含单选题...

    如何在iPad上使用WPS移动版创建和使用Word文档.docx

    打开一个 Word 文档后,WPS Office 默认进入“阅读”模式,点一下右上角的铅笔图标即可切换到“编辑模式”下,在该模式下,iPad 用户可以对 Word 文档进行修改编辑。 knowledge point 6: 多点触控操作 WPS Office ...

    计算机一级WPS辅导:给重要的Wps文件加锁.docx

    这对于挽救因软件错误或其他原因导致损坏的文档至关重要,有时甚至可以挽救一笔宝贵的劳动成果。 综上所述,金山文字2003为用户提供了相当全面的文档安全保护措施。通过文件加密、文档保护、自动存盘、生成备份文件...

    WPS演示中的荧笔光 教师教学的好帮手.docx

    在现代化的教学设备和软件不断更新换代的当下,WPS演示软件中集成的荧光笔功能为教师提供了一个非常实用的电子教学辅助工具。借助这一功能,教师能够有效地组织课堂内容,使授课过程更加生动和高效。 传统教学中,...

    WPS操作题.zip

    WPS Office,全称为“Kingsoft Office”,是由金山软件公司开发的一款高效办公软件套装,它包括了文字处理、电子表格、演示文稿等多个组件,与Microsoft Office有很高的兼容性,但同时也提供了许多独特功能和优势。...

    WPS怎么修改定时自动备份间隔时间.docx

    WPS(王者之笔)是中国金山软件有限公司推出的办公软件,具有强大的办公功能和兼容性。其中,自动备份功能是WPS的一大亮点,可以自动保存用户的文件,以免因意外情况导致文件丢失。然而,WPS的自动备份间隔时间默认...

    诺为翻页笔对码软件(N31 Mini实测)

    诺为翻页笔是一款在教育、商务等领域广泛应用的设备,尤其在精品课程录制或大型演讲时,能够方便地实现远程操控PPT翻页,提升演示的流畅性。N31 Mini作为诺为翻页笔系列的一员,其对码软件是确保笔与接收器间稳定...

    WPS演示教程:设计课堂投票小制作.docx

    这样,当动画播放时,就像是粉笔一笔一笔地在黑板上写出“正”字,增加了视觉吸引力。 完成单个“正”字的动画设置后,需要复制多个带有动画的“正”字以记录不同的投票选项。如图4所示,通过复制和粘贴,我们可以...

    wps手机遥控怎么用?.docx

    WPS Office作为一款功能强大的办公软件,不仅提供了电脑端的全面应用,还支持手机遥控功能,让移动设备成为电脑的遥控器,极大地提升了工作效率。本文将详细介绍如何使用WPS手机遥控功能,让你轻松实现手机控制电脑...

    WPS2021表格怎么加批注.docx

    WPS2021表格批注功能是WPS软件中的一个非常实用的功能,它允许用户在表格中添加批注,以便于记录和溯源数据的来源和变化过程。下面我们将详细介绍如何使用WPS2021表格批注功能。 首先,在WPS2021表格中添加批注非常...

    wps中ppt表格边框颜色.pdf

    在WPS Office中,无论是PPT还是表格,用户都可以自定义元素的样式,包括边框颜色。本文主要讲解了在WPS PPT中为图片添加边框颜色以及在WPS表格中绘制斜线表头的方法。 首先,我们来看如何在WPS PPT中为图片添加边框...

Global site tag (gtag.js) - Google Analytics