天风掌财社:Shiro 单元测试

本文介绍了如何在Shiro中进行单元测试,重点在于模拟Shiro的API来测试自己的代码逻辑。通过使用EasyMock或Mockito创建模拟Subject并将其绑定到线程,确保测试的正确性。在测试完成后,需要使用tearDownSubject()方法清除Subject以保持测试的清洁。
摘要由CSDN通过智能技术生成

单元测试主要是关于测试您的代码,而仅是在有限范围内的代码。考虑到 Shiro 时,您 true 要关注的是您的代码可以与 Shiro 的* API *一起正常工作-您并不需要测试 Shiro 的实现是否正常工作(这是 Shiro 开发团队必须确保的事情)在 Shiro 的代码库中)。

检验 Shiro 的实现是否可以与您的实现一起工作的测试实际上是集成测试(下面讨论)。

 

Shiro单元测试实例

因为单元测试更适合测试您自己的逻辑(而不是您的逻辑可能调用的任何实现),所以“模拟”您逻辑所依赖的任何 API 是一个好主意。这在 Shiro 上非常有效-您可以模拟​Subject​接口,并使其反映您希望被测代码对之做出反应的任何条件。我们可以利用诸如EasyMock和Mockito之类的现代模拟框架为我们完成此任务。

但是如上所述,Shiro 测试中的关键是要记住在测试执行期间必须将任何 Subject 实例(模拟或真实)绑定到线程。因此,我们要做的就是绑定模拟主题,以确保事情按预期进行。

(此示例使用 EasyMock,但 Mockito 的效果也一样):

import org.apache.shiro.subject.Subject;
import org.junit.After;
import org.junit.Test;

import static org.easymock.EasyMock.*;

/**
 * Simple example test class showing how one may perform unit tests for 
 * code that requires Shiro APIs.
 */
public class ExampleShiroUnitTest extends AbstractShiroTest {

    @Test
    public void testSimple() {

        //1.  Cr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_45378258

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值