@Service
public class Topic_Service
{
private String test_help()
{
return "test_help";
}
public String testing()
{
return test_help() + " " + "testing";
}
}
//Test Code
@SpringBootTest
@RunWith(PowerMockRunner.class)
@PrepareForTest(Topic_Service.class)
class Topic_Service_test
{
@InjectMocks
private Topic_Service topic_service = PowerMockito.spy(new
Topic_Service());
@Test
void testing_test() throws Exception
{
PowerMockito.when(topic_service,"test_help").thenReturn("hello");
String s = topic_service.testing();
Assertions.assertEquals("hello testing",s);
}
}
//POM.XML Dependencies
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version> 2.8.47</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>
有人能帮帮我吗?提前谢了。
您没有正确地插入私有方法。您需要使用PowerMockito.stub
为私有方法存根。
下面是如何正确地建立私有方法的存根:
PowerMockito.stub(PowerMockito.method(Topic_Service.class,"test_help")).toReturn("hello");
我将您的代码修改如下:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Topic_Service.class)
public class Topic_ServiceTest {
@Test
void testing_test() throws Exception {
// Setup
Topic_Service topic_serviceSpy = PowerMockito.spy(new Topic_Service());
PowerMockito.doReturn("Hello").when(topic_serviceSpy, "test_help");
// exercise
String s = topic_serviceSpy.testing();
// verify
Assertions.assertEquals("hello testing",s);
}
}
我试图模拟一个私有方法(executeGetRequest),在我声明要为私有方法返回的模拟的那一行中,私有方法实际上是用null参数执行的,因此抛出了一个NullPointerException。 VlcPlayerMinimal。爪哇: VlcPlayerMinimalTest。爪哇: 堆栈跟踪: 它似乎PowerMockito实际上是调用的方法,我试图在行PowerMockito.do返回(
我试图在测试的类中模拟一个私有方法,如下所示。 现在我需要测试方法和mock。 我尝试创建间谍的上述类,但该方法得到调用时,我这样做下面 在第二行本身被调用。而且,不会被模仿。 也许我用错误的方式创建了间谍对象?无法执行
我有一门课看起来像这样: 我想使用Mockito和Powermock为此编写一个单元测试。我知道我可以这样模仿私有方法: 但是我如何告诉它抛出异常呢?我知道会是这样的: 那里有什么? 请注意,异常是一个私有内部类,因此我不能只执行,因为从单元测试中无法访问。
问题内容: 我正在尝试模拟私有静态方法。见下面的代码 这是我的测试代码 但是我运行的每个瓦片都会出现此异常 我想我在嘲弄东西时做错了什么。有什么想法我该如何解决? 问题答案: 为此,您可以使用和。 此外,您必须在测试类中指定PowerMock运行器,并准备要进行测试的类,如下所示: 希望对您有帮助。
我有一个类,它有一个私有方法,并在其主体中调用另一个私有方法。所以我想调用第一个私有方法并模拟第二个。以下是一个例子: 和测试等级: 我通过