<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    躺在沙灘上的小豬

    快樂的每一天

    #

    Smack Quick Start

    Smack is a library for communicating with XMPP servers to perform instant messaging and chat.
     

    package cn.martin.xmpp;

    import org.jivesoftware.smack.GroupChat;
    import org.jivesoftware.smack.XMPPConnection;
    import org.jivesoftware.smack.XMPPException;
    import org.jivesoftware.smack.Chat;
    import org.jivesoftware.smack.packet.Message;
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.junit.AfterClass;

    /**
     * 
    @author martin
     
    */
    public class SmackTest {
        
    private static XMPPConnection con;

        @BeforeClass
        
    public static void getConnection() throws XMPPException {
            con 
    = new XMPPConnection("rabbit");
            con.login(
    "martinx""1234");
        }

        @Test
        
    public void chatWithSingle() throws XMPPException {
            con.createChat(
    "martin@rabbit").sendMessage("Simple Message");
        }

        @Test
        
    public void chatWithGroup() throws XMPPException {
            String room 
    = "dd@conference.rabbit";
            GroupChat groupChat 
    = con.createGroupChat(room);
            groupChat.join(
    "martinx");
            Message message 
    = groupChat.createMessage();
            message.setBody(
    "Group Chat Test");
            groupChat.sendMessage(message);
        }

        @Test
        
    public void chatWithReturnedMessage() throws XMPPException {
            Chat chat 
    = con.createChat("martin@rabbit");

            Message message 
    = chat.createMessage();
            message.setBody(
    "Hello Martin");
            message.setProperty(
    "favoriteColor""red");
            chat.sendMessage(message);

            
    //獲取回復
            while (true) {
                Message _message 
    = chat.nextMessage();
                chat.sendMessage(_message.getBody());
            }
        }

        @AfterClass
        
    public static void closeConnection() {
            con.close();
        }
    }

    看了http://forum.javaeye.com/viewtopic.php?t=19089很是感興趣,想做一個,明天繼續

    posted @ 2006-03-15 18:24 martin xus| 編輯 收藏

    IDEA's blog

    http://blogs.jetbrains.com/idea/

    posted @ 2006-03-14 21:14 martin xus| 編輯 收藏

    [ZT]JUnit 4.0 in 10 minutes

    http://www.instrumentalservices.com/index.php?option=com_content&task=view&id=45&Itemid=52
    Gunjan Doshi
    Instrumental Services Inc.


    Abstract: JUnit needs no introduction. Originally written by Kent Beck and Erich Gamma, the software is the preferred tool of choice for developer testing. Now, the team of Kent Beck and Erich Gamma is back again with a new version of JUnit – 4.0. This quick reference guide is for programmers and testers looking to migrate to JUnit 4.0. If you have a flight to catch or do not want to spend 10 minutes going through the guide, just jump to the summary section and you will learn enough.

    For the purpose of this article, I will call JUnit 3.8.1 and its predecessors as the old JUnit and JUnit 4.0 as the new JUnit.

    Table of contents:

    This guide contains the following sections:

    ·         Old JUnit revisited

    ·         Cut the chase to JUnit 4.0

    ·         Run the tests

    ·         Set up and tear down

    ·         One-time set up and tear down

    ·         Expecting exceptions

    ·         Other Annotations

    o              Ignoring a test

    o              Timing out a test

    ·         Summary

    Old JUnit revisited

    Using the old JUnit, let us write a test, which verifies the availability of a book in the library.

    To summarize the steps:

    ·         We extend from junit.framework.TestCase.

    ·         We name the test methods with a prefix of ‘test’.

    ·         We validate conditions using one of the several assert methods.

    Cut the chase to JUnit 4.0

    Let us write the same test using JUnit 4.0.

    When I upgrade to a new version I look for tasks, I do not have to do anymore. Here is the same code with notes telling us what not to do anymore.

    To summarize:

    ·         We do not extend from junit.framework.TestCase.

    ·         We do not prefix the test method with ‘test’.

    Next, I look for new tasks I must always do. The diagram below summarizes what we must do according to the new JUnit standards:

    To summarize:

    ·         Use a normal class and not extend from junit.framework.TestCase.

    ·         Use the Test annotation to mark a method as a test method. To use the Test annotation, we need to import org.junit.Test

    ·         Use one of the assert methods. There is no difference between the old assert methods and the new assert methods. An easy way to use the assert method is to do a static import as shown by point 2 in the code above.

    ·         Run the test using JUnit4TestAdapter. If you want to learn more about JUnit4TestAdapter, keep reading ahead.

    Run the tests

    Unfortunately, our favorite development environments are still unaware of JUnit 4. JUnit4Adapter enables compatibility with the old runners so that the new JUnit 4 tests can be run with the old runners. The suite method in the diagram above illustrates the use of JUnit4Adapter.

    Alternatively, you can use the JUnitCore class in the org.junit.runner package. JUnit 4 runner can also run tests written using the old JUnit. To run the tests using the JUnitCore class via the command line, type:

    java org.junit.runner.JUnitCore LibraryTest

    Set up and tear down

    The new JUnit provides two new annotations for set up and tear down:

    ·         @Before: Method annotated with @Before executes before every test.

    ·         @After: Method annotated with @After executes after every test.

    Here is the code that demonstrates the use of @Before and @After:

    Two features of @Before and @After annotations that are helpful to learn:

    ·         You can have any number of @Before and @After as you need.

    ·         It is possible to inherit the @Before and @After methods. New JUnit executes @Before methods in superclass before the inherited @Before methods. @After methods in subclasses are executed before the inherited @After methods.

    One-time set up and tear down

    The new JUnit4 provides @BeforeClass and @AfterClass annotations for one-time set up and tear down. This is similar to the TestSetup class in the old junit.extensions package, which ran setup code once before all the tests and cleanup code once after all the tests.

    Here is the code that demonstrates @BeforeClass and @AfterClass:

    Unlike @Before and @After annotations, only one set of @BeforeClass and @AfterClass annotations are allowed.

    Expecting exceptions

    The new JUnit makes checking for exceptions very easy. The @Test annotation takes a parameter, which declares the type of Exception that should be thrown. The code below demonstrates this:

    In the code above, bookNotAvailableInLibrary is a test, which passes only if BookNotAvailableException is thrown. The test fails if no exception is thrown. Test also fails if a different exception is thrown.

    Other Annotations

    Ignoring a test

    The @Ignore annotation tells the runner to ignore the test and report that it was not run. You can pass in a string as a parameter to @Ignore annotation that explains why the test was ignored. E.g. The new JUnit will not run a test method annotated with @Ignore(“Database is down”) but will only report it. The version of JUnit4Adapter, I used, did not work with @Ignore annotation. Kent Beck has informed me that the next version of JUnitAdapter will fix this problem.

    Timing out a test

    You can pass in a timeout parameter to the test annotation to specify the timeout period in milliseconds. If the test takes more, it fails. E.g. A method annotated with @Test (timeout=10) fails if it takes more than 10 milliseconds.

    Finally, I would like to thank Kent Beck for taking the time to demonstrate and teach the new JUnit to me.

    Summary

    To summarize the new JUnit style:

    1. It Requires JDK 5 to run.
    2. Test classes do not have to extend from junit.framework.TestCase.
    3. Test methods do not have to be prefixed with ‘test’.
    4. There is no difference between the old assert methods and the new assert methods.
    5. Use @Test annotations to mark a method as a test case.
    6. @Before and @After annotations take care of set up and tear down.
    7. @BeforeClass and @AfterClass annotations take care of one time set up and one time tear down.
    8. @Test annotations can take a parameter for timeout. Test fails if the test takes more time to execute.
    9. @Test annotations can take a parameter that declares the type of exception to be thrown.
    10. JUnit4Adapter enables running the new JUnit4 tests using the old JUnit runners.
    11. Old JUnit tests can be run in the new JUnit4 runner.

    posted @ 2006-03-14 10:07 martin xus| 編輯 收藏

    Prototype Gets Some Serious Syntactic Sugar

    http://encytemedia.com/blog/articles/2006/03/07/prototype-gets-some-serious-syntactic-sugar

    posted @ 2006-03-13 14:25 martin xus| 編輯 收藏

    It is time to stop listening to James Gosling

    http://marcus.ahnve.net/?p=122

    總有這樣的話題 

    posted @ 2006-03-13 09:50 martin xus| 編輯 收藏

    僅列出標題
    共28頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 Last 
    主站蜘蛛池模板: 亚洲不卡中文字幕无码| 一区二区三区在线免费| 亚洲码欧美码一区二区三区| 日韩在线播放全免费| 女人18毛片a级毛片免费| 久久国产成人亚洲精品影院| 亚洲视频在线免费观看| mm1313亚洲国产精品无码试看 | 国产成人亚洲精品91专区手机| 在线观看亚洲人成网站| 美女视频黄a视频全免费网站一区| 波霸在线精品视频免费观看| 亚洲砖码砖专无区2023| 中国一级特黄的片子免费| 免费在线观看h片| 国产精品亚洲综合一区| 亚洲国产综合精品| 亚洲乱妇熟女爽到高潮的片| 免费成人在线视频观看| 亚洲av无码天堂一区二区三区 | 亚洲最大福利视频网站| 一级成人a做片免费| 国产免费牲交视频| 亚洲午夜精品久久久久久app| 中国人xxxxx69免费视频| 中文字幕亚洲综合久久菠萝蜜| 亚洲AV成人片无码网站| 猫咪社区免费资源在线观看 | 亚洲一区二区三区免费在线观看| 久久精品国产影库免费看| 国产亚洲精品线观看动态图| 污视频网站在线观看免费| AAAAA级少妇高潮大片免费看| 免费人成激情视频| 野花视频在线官网免费1| 亚洲国产成人久久笫一页| 中文永久免费观看网站| 亚洲午夜久久久影院| 久久久精品免费国产四虎| 亚洲精品乱码久久久久久自慰| 免费人成激情视频在线观看冫 |