现在只有一个嘲笑工作正常。另一个返回空指针异常。@Autowired和@Mock都为BCryptPasswordEncoder密码编码器提供空点;
@SpringBootTest
public class UserServiceTests {
@Autowired
BCryptPasswordEncoder passwordEncoder;
@Mock
private UserRepository userRepository;
@InjectMocks
private UserService userService =new UserServiceImpl();
@BeforeEach
void setUp() throws Exception{
MockitoAnnotations.initMocks(this);
}
}
这个为我工作
public class UserServiceTests {
@InjectMocks
private UserService userService = new UserServiceImpl();
@Mock
private UserRepository userRepository;
@Mock
BCryptPasswordEncoder passwordEncoder;
@BeforeEach
void setUp() throws Exception{
MockitoAnnotations.initMocks(this);
}
}
没有可以注入的< code > BCryptPasswordEncoder 的默认实例。所以你不能自动连线。您应该在配置中的某个地方或任何其他地方声明一个Bean。< br >示例:
java prettyprint-override">@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
如果您想单元测试您的UserServiceImpl
类,只需删除@SpringBootTest
(它实际上是一个成熟的联调)。以下应该按预期工作:
@ExtendWith(MockitoExtension.class)
public class UserServiceTests {
@Mock
BCryptPasswordEncoder passwordEncoder;
@Mock
private UserRepository userRepository;
@InjectMocks
private UserServiceImpl userService;
// Your tests
}
我正在尝试为以下类创建单元测试: 我当前的测试类是: 我可以模拟类的私有字段,但似乎找不到模拟静态方法的方法。这是可能的还是我只是在浪费时间? 我使用Mockito1.10.19和JUnit4进行测试。 我是一个新的对象嘲弄单元测试,所以如果我有什么大错特错,请告诉我! 多谢了。
考虑拥有两个实体管理器工厂: 然后,我希望有两个Beans,并向其中注入正确的持久性上下文: 该bean看起来像: 这显然不起作用,因为EntityManager不是bean,不能以这种方式注入: 如何在bean中限定正确的EntityManager?我曾经使用< code>@PersistenceContext注释,但是这并不可用,因为我需要注入它。 如何为此类Bean指定持久性上下文? 更新:
可以模拟抽象类,也可以使用Mockito注释将模拟类注入抽象类。我现在有以下情况: 我想在AbstractClassUnderTest上使用类似@InjectMocks的东西,但它不能与@Mock结合使用。Powermock的Whitebox的当前情况是有效的,但我很好奇是否可以通过注释来解决它。我找不到任何解决方案或示例。 (我知道对测试抽象类的反对意见,我个人更愿意测试一个具体的实现,只使用@
所以我有一个帮助命令,它会向您发送DM上的命令列表。发送后,我希望它在同一个@bot或@client.command中发送另一个嵌入。 @客户。command()异步定义帮助(ctx,成员:discord.member=None):
我有以下实现,我正在尝试在Guice中注入 这是我的注入代码Injector guice=Guice. Injector();guice.get实例(SomeClass.class); 但我不断地得到错误: 在hello.package.helloworld.客户端中找不到合适的构造函数。类必须有一个(并且只有一个)用@Inject注释的构造函数或一个非私有的零参数构造函数 如何注入一个已经有参数
然后在'main'类中,我将'panel'添加到JFrame中。 我的问题是,我正在尝试实现一个actionListener到一个添加在'Panel'类内部的按钮。actionListener函数将添加更多按钮并使用G.DrawString的按钮。现在,我要将ActionListener放置在哪里,以便这样做呢?如何将g.drawString用于特定的面板,而g.drawString行位于另一个类