如何初始化atlassian jira IssueService?

问题描述 投票:1回答:1

在生产中,com.atlassian.jira.bc.issue.IssueService已在构造中注入,但是如何在单元测试中模拟它?

生产代码:

class myObject {

    IssueService issueService    

    public myObject( IssueService issueService, ...) {
        this.issueService = issueService;
    }

    public void foo () {
    ...
    IssueInputParameters iip = issueService.newIssueInputParameters(); // NULL POINTER EXCEPTION WHEN RUN BU UNIT TEST!
    ...
    }
}

我试图在测试中写:

IssueService issueService = ComponentAccessor.getIssueService();
MyObject mo = new MyObject(issueService, ...);
mo.foo(); // NULL POINTER EXCEPTION!

ComponentAccessor.getIssueService();返回null而不是对象。

java jira-plugin atlassian-plugin-sdk
1个回答
0
投票

启动测试用例时,出于定义范围的目的,大多数Jira Services都无法访问,建议使用模拟版本,您可以按照以下步骤进行操作

import static org.mockito.Mockito.mock;
import org.junit.Before;
import org.junit.Test;

public class FooUnitTest {


    private IssueService   mockIssueService;
    private MyObject mo;

    @Before
    public void setup() {

        mockIssueService = mock(IssueService.class);

        mo = new MyObject(mockIssueService , ...);

    }

    @Test
    public void testFoo(){
        mo.foo(); 
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.