Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试类中的字段定义_Java_Static_Field_Final - Fatal编程技术网

Java 测试类中的字段定义

Java 测试类中的字段定义,java,static,field,final,Java,Static,Field,Final,考虑以下测试类: public class MyTest extends extends EasyMockSupport { private static TestobjectFactory testobjectFactory = new TestobjectFactory(); private static final Date DATE = testobjectFactory.createDate(2013, 0, 13, 01, 02, 03); private

考虑以下测试类:

public class MyTest extends extends EasyMockSupport {

    private static TestobjectFactory testobjectFactory = new TestobjectFactory();
    private static final Date DATE = testobjectFactory.createDate(2013, 0, 13, 01, 02, 03);
    private static final String CSV = "einCsv";

    @TestSubject
    private ClassToBeTested classUnderTest = new ClassToBeTested();

    @Mock
    private ClassToBeMocked myMock;

    @After
    public void tearDown() {
        verifyAll();
    }

    @Test
    public void myTest() throws Exception {
        replayAll();

        String outcome = classUnderTest.someMethod("", DATE);

        assertThat(outcome, is(""));
    }

    @Test
    public void anotherTest() throws Exception {
        expect(myMock.mockedMethod((String[]) anyObject())).andReturn(testobjectFactory.foo());

        replayAll();

        String outcome = classUnderTest.someMethod(CSV, DATE);

        assertTrue(outcome.contains("abc"));
    }

}
问题:

  • 为什么要定义CSV(或日期)静态最终版本?我同意把它定义为最终的,因为它是不变的。但为什么是静态的


  • 哪些字段是大写的? 私有静态最终MY_字段; 私人决赛我的领域; 私有静态MY_字段


  • 使用静态TestobjectFactory不是更好吗

编辑:


我以前已经看过那篇可能重复的文章了。但是我写的问题没有答案。

魔术字符串常量总是可以声明为静态最终值。这样,它们只存在一次,不必每次生成类实例时都创建/加载“使用静态TestobjectFactory不是更好吗?”您已经:
private static TestobjectFactory TestobjectFactory=…
。你什么意思?好的,这回答了我的第一个问题。不错。关于第二个问题,我指的是类似TestobjectFactory.createDate(2013,0,13,01,02,03)的调用;你的项目的编码标准是什么?e、 g.为某些标识符指定了它,但这只是谷歌选择的方式。我是在java标准的意义上问这个问题的。神奇的字符串常量总是可以声明为静态的final。这样,它们只存在一次,不必每次生成类实例时都创建/加载“使用静态TestobjectFactory不是更好吗?”您已经:
private static TestobjectFactory TestobjectFactory=…
。你什么意思?好的,这回答了我的第一个问题。不错。关于第二个问题,我指的是类似TestobjectFactory.createDate(2013,0,13,01,02,03)的调用;你的项目的编码标准是什么?e、 g.为某些标识符指定了它,但这只是谷歌选择的方式。我问的是java标准的意义。