`
java--hhf
  • 浏览: 306136 次
  • 性别: 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
分享到:
评论

相关推荐

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

    1、适用于精品课录制场景,老师面对提词器PPT画面,大屏幕上要同步播放该PPT; 2、一支翻页笔控制二台电脑同步播放PPT(需要二个接收器) 3、该软件设置同一支翻页笔可以操作二个同型号的接收器

    堪称一绝的“IO口扫键”法.wps

    在做项目(工程)的时候,我们经常要用到比较多的...一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家来说,这是一笔不菲的开支!那,我们能不能想到比较好的扫键方法:用最少的IO口,扫最多的键?可以吗?

    DapperMap地图控件

    范围查询等“功能强大、易学易用”是DapperMap ActiveX的特色之一,在保持这一鲜明特色的同时,编程接口进行了统一的归类分组, 使开发者更易于理解,并进一步简化了编程工作量,DapperMap ActiveX是单机或者客户端/...

    一些数字信号处理的函数-pr7.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr8.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr2.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr5.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr6.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr3.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    一些数字信号处理的函数-pr4.m

    分别用矩形窗、汉宁窗、海明窗、三角窗和Blackman窗设计一file:///C:/Users/fengnuo/AppData/Local/Temp/ksohtml/wps_clip_image-7617.png的线性相位带通滤波器,观察它们的3dB和20dB带宽,并比较五种窗的特点。

    visual Studio2008C++ expression使用文档

    visual Studio2008C++ expression使用文档 能让大家更好的使用此软件。这个软件是免费的,到 ... 此文档需要wps或者office软件来查看,如果你...下载wps即可查看此文档。 注:本人所有资源都是共享的,的资源分都是0!

    PPT剪贴画大全Office2007.ppt

    剪贴画是一种特殊的画,和真正的绘画不一样。剪贴画不用笔和颜色,而是用各种材料剪贴而成的。这些材料又大都是日常生活中废弃的...在Office和WPS的PPT幻灯片中插入适当的剪贴画,会给整篇PPT起到一个锦上添花的作用。

    2017年4月高等教育自学考试全国统一命题考试 数据库系统原理试卷

    2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。 3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。 4.合理安排答题空间,超出答题区域无效。

    配置好的傻瓜化小狼毫全拼+多种双拼+五笔86-98+笔画输入法v200312 - 17种方案

    此功能非常适合导入单位的人员名单等,只需把名单一个一行粘贴进去,不需人工编码,然后就能够自动生成编码打字了!单位办公不要太方便! 也可用于维护专业特殊词汇。 添加用户自定义短语 使用记事本等文本编辑...

    商业进销存微型管理系统

    完全面向管理,没有名目繁多的帐户,使您的帐目更加清晰,让您真正掌握每一笔业务的来龙去脉。 最简化的期初建帐模式,只须第一次的初始化过程,以后每笔业务都在其中反映。 进货管理:只须在进货单中录入与该项...

    kapu-pool:gsilvestri代表KAPU池

    ARK池分发软件该软件是由lisk代表“ dakk”创建的,如果您使用此软件,请考虑捐赠一小笔:用于lisk的“ 2324852447570841050L”或用于班次的“ 7725849364280821971S”或用于方舟的“ AZAXtswaWS4v8eYMzJRjpd5pN3...

    计算机知识点总结(大学计算机第四版蒋加伏).doc

    主机:CPU系统、主板系统、内存系统、 外存系统、显示系统、音频系统、 网络系统、BIOS系统、常用外设 输出设备:打印机、刻录机、投影仪、 硬件系统 音响、显示器 外设 输入设备:键盘、鼠标、扫描仪、手写笔、 ...

    会计理论考试题

    第一套 选择题 1.计算机感染病毒后会产生各种现象,以下不属于病毒现象的是__D__。 A、文件占用的空间变大 B、发生异常蜂鸣声 C、屏幕显示异常图形 D、机内的电扇不转 2. Windows98支持下面___C__网络协议。 A、...

    AIP文件打开阅读器winaip v3.0中文版.zip

    winaip一款专业的AIP文件阅读器,支持添加批注及笔批,AIP格式电子印章文档阅读工具,能够安装和运行在XP/WIN7/2003系统下。 winaip主要功能: 能够打开阅读aip格式的文档,支持文档的放大与缩小,除了能够打开AIP...

Global site tag (gtag.js) - Google Analytics