Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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 Mockito 1.10.19测试构建器方法_Java_Mocking_Mockito - Fatal编程技术网

如何使用Java Mockito 1.10.19测试构建器方法

如何使用Java Mockito 1.10.19测试构建器方法,java,mocking,mockito,Java,Mocking,Mockito,所以我需要使用Mockito来测试builder方法。我是Mockito的新手,有人能给我一些示例代码,告诉我如何为builder方法编写测试吗 如果您想建议我更改类的设计或使其更易于测试的任何方法,请告诉我。要测试build(),您可以尝试: public class MyXML { private MessageParser messageParser; private String valueA; private String valueB; private

所以我需要使用Mockito来测试builder方法。我是Mockito的新手,有人能给我一些示例代码,告诉我如何为builder方法编写测试吗

如果您想建议我更改类的设计或使其更易于测试的任何方法,请告诉我。

要测试build(),您可以尝试:

public class MyXML {
    private MessageParser messageParser;
    private String valueA;
    private String valueB;
    private String valueC;

    public MyXML (MessageParser messageParser) {
        this.messageParser=messageParser;
    }

    public void build() {
        try {
            setValueA();
            setValueB();
            setValueC();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void setValueA() {
        valueA = messageParser.getArrtibuteUsingXPath("SomeXPath1...");
    }

    private void setValueB() {
        valueB = messageParser.getArrtibuteUsingXPath("SomeXPath2...");
    }

    private void setValueC() {
        valueC = messageParser.getArrtibuteUsingXPath("SomeXPath...");
    }

    public String getValueA() {
        return valueA;
    }

    public String getValueB() {
        return valueB;
    }

    public String getValueC() {
        return valueC;
    } 
}
资源可能很有用-它描述了如何存根void方法调用。

要测试build(),您可以尝试:

public class MyXML {
    private MessageParser messageParser;
    private String valueA;
    private String valueB;
    private String valueC;

    public MyXML (MessageParser messageParser) {
        this.messageParser=messageParser;
    }

    public void build() {
        try {
            setValueA();
            setValueB();
            setValueC();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void setValueA() {
        valueA = messageParser.getArrtibuteUsingXPath("SomeXPath1...");
    }

    private void setValueB() {
        valueB = messageParser.getArrtibuteUsingXPath("SomeXPath2...");
    }

    private void setValueC() {
        valueC = messageParser.getArrtibuteUsingXPath("SomeXPath...");
    }

    public String getValueA() {
        return valueA;
    }

    public String getValueB() {
        return valueB;
    }

    public String getValueC() {
        return valueC;
    } 
}

资源可能很有用-它描述了如何存根void方法调用。

首先,测试
getValueA()
getValueB()
,。。。它们不包含任何逻辑,只需返回一个简单的字符串使用构造函数注入
messageParser
是一个很好的设计,并且易于测试。模拟
messageParser
,并将其设置为在…时通过
返回模拟值,然后返回…
。然后简单地断言那些在公共方法上返回的值。搜索示例。如果我模拟MessageParser,然后将MessageParser注入MyXML对象,我会得到java.lang.AssertionError:expected:但是was:236523Ah是的,修复了这个问题。谢谢您首先,测试
getValueA()
getValueB()
,…,没有任何意义,。。。它们不包含任何逻辑,只需返回一个简单的字符串使用构造函数注入
messageParser
是一个很好的设计,并且易于测试。模拟
messageParser
,并将其设置为在…时通过
返回模拟值,然后返回…
。然后简单地断言那些在公共方法上返回的值。搜索示例。如果我模拟MessageParser,然后将MessageParser注入MyXML对象,我会得到java.lang.AssertionError:expected:但是was:236523Ah是的,修复了这个问题。非常感谢。