我试图让RunWith(PowerMockRunner.class)处理我现有的包注释。
版本:
Powermock 1.4.12 mockito 1.9.0 jUnit 4.8.2
package-info.java//这是包注释
@TestAnnotation(version="1.0")
package com.smin.dummy;
测试说明。java//这是包“com.smin.dummy”的元数据注释类
package com.smin.dummy;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PACKAGE)
public @interface TestAnnotation {
String version();
}
A、 爪哇
package com.smin.dummy;
public class A {
private static Package myPackage;
private static TestAnnotation version;
static {
myPackage = TestAnnotation.class.getPackage();
version = myPackage.getAnnotation(TestAnnotation.class);
}
public static String getVersion() {
return version.version();
}
}
莫卡。Java语言
package com.smin.dummy;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import com.smin.dummy.A;
@RunWith(PowerMockRunner.class) //comment out this line to see the difference
@PrepareForTest(A.class)
public class MockA {
@Test
public void test_mocked() throws Throwable {
String thisVersion = A.getVersion();
System.out.println(thisVersion);
}
}
在unitest MockA中。如果我不使用RunWith(PowerMockRunner.class),我会按预期打印出这个版本。但是在添加了RunWith(PowerMockRunner.class)之后,这个版本变成了null。我怀疑PowerMockRunner在这里对包注释做了一些有趣的事情,有人知道吗?请参阅下面我的代码的迷你版本:
基于@Alban在注释中的侦探工作,看起来将此注释添加到您的测试用例应该可以规避问题:
@PowerMockIgnore("com.smin.dummy.TestAnnotation")
我有折叠代码: 根据以下链接中描述的原因,我无法使用
我是Spring的新手,我很困惑@CreatedDate注释在实体中是如何工作的。 我做了一次谷歌搜索,有很多解决方案,但除了一个,没有一个适合我。我很困惑为什么? 这是我先试的 它不起作用。我为列中的值获取了NULL。 然后我做了这个。 这实际上将时间戳存储在db中。我的问题是,我遵循的大多数教程都建议我不需要来获取当前时间戳。看起来我确实需要它。我缺少什么吗?
我正在开发一个示例SpringBoot应用程序。我有两个包裹。通用域名格式。A(其中有@springbootApplication注释的主类)2。通用域名格式。B(其他春豆)。 现在我的问题是:由于应用程序失败,包B中的Spring bean没有被扫描。我尝试使用a。@springbootApplication atio(scanBasePackages="com. B")b。也@组件扫描(...
环境:科特林 1.5.30, 春靴 2.5.4(Spring 5.3.9) 我试图创建一个组合注释来简化类似的模板注释代码。注释类如下: 预期用法: application.yaml: 但在应用程序启动后,TheBean 未按预期注册。 > 首先,我在github spring存储库中搜索,发现了这个:回归:自定义组合@Profile注释,组件扫描不再支持没有运行时保留。所以我试图但没有效果。 尝
两个无状态EJB及其远程接口。EJB1被注入EJB2 > EJB2还使用一些可选包(在其清单中声明) WebLogic应用服务器(10.3.3) 两个EJB被打包成两个单独的JAR文件 如果将两个JAR文件打包到一个EAR文件中并部署,则依赖注入工作。但是如果我单独部署它们,即使我首先部署了EJB1并在Weblogic(com.xxx.EJB1#com.xxx.layer1中验证了全局JNDI名称
错误在此输入图像描述 我试图发送事件的通知,当一些喜欢和评论他的帖子,通知评论和喜欢在这里工作是我的通知类。 我的控制器功能代码,用于通知评论 我的请求