`

结合使用Dummy, InjectTo, PartialMock的单元测试

    博客分类:
  • Test
阅读更多
结合使用Dummy, InjectTo, PartialMock的单元测试, 备忘
@RunWith(UnitilsJUnit4TestClassRunner.class)
public class CheckerTest {
    private PartialMock<Manager> ManagerMock;
    private PartialMock<Dao1> daoMock;
    @TestedObject
    private Checker checker;
    @TestedObject
    private MyBean beanMock;
    @TestedObject
    private Result result;
    @TestedObject
    private MyBean2 bean2;
    // 在before方法之前执行(自定义)
    @CreateMock
    private MyBean bean3;

    @InjectIntoByType(target = "checker")
    @Dummy
    protected Dao1 dao1;

    @Before
    public void initMock() {
        bean3.setId(123L);
        bean3.setDescPath("abc");
    }
    private void setManager() throws IcException {
        result.setItem(bean2);
        ManagerMock.returns(result).queryById(null, null, null);
        checker.setManager(ManagerMock.getMock());
    }

    @Test
    public void testCheck() throws Exception {
        setManager();

        beanMock.setId(123L);

        daoMock.returns(bean3).query(0, 0, null);
        checker.setDao1(daoMock.getMock());
        checker.check(beanMock, "abc");
        assertEquals(beanMock.getMemo(), "abc");
    }

    @Test(expected = Exception.class)
    public void testCheck_和数据库中的id不等() throws Exception {
        setManager();

        beanMock.setId(111L);

        daoMock.returns(bean3).query(0, 0, null);
        checker.setDao1(daoMock.getMock());
        checker.check(beanMock, "abc");
    }

    @Test
    public void testCheck_没有指定id() throws Exception {
        setManager();

        daoMock.returns(bean3).query(0, 0, null);
        checker.setDao1(daoMock.getMock());
        checker.check(beanMock, "abc");
        assertEquals(beanMock.getMemo(), "abc");
        assertEquals(beanMock.getId(), 123L);
    }

    @Test(expected = Exception.class)
    public void testCheck_数据库中不存在() throws Exception {
        setManager();

        daoMock.returns(null).query(0, 0, null);
        checker.setDao1(daoMock.getMock());
        checker.check(beanMock, "abc");
    }
}
分享到:
评论

相关推荐

    top版图 添加dummy 流程

    在集成电路设计中,dummy指的是那些没有实际功能,但用于改善布线密度、均匀电场分布或优化制造工艺的单元或金属线。它们通常是为了解决设计规则检查(DRC, Design Rule Check)中的问题,比如最小间距、最小线宽等...

    关于MOS的dummy问题

    最近碰到CMOS的dummy问题 特想请教一下各位的意见 我是觉得 dummy MOS 必须要和被保护的 MOS 管是同一个方向的即:S---D 方向 和 GATE 方向 分别相同 这就牵涉到 designer 必须规定好 dummy MOS 的尺寸 就是说:L...

    前端开源库-justo-dummy

    "justo-dummy"就是一个这样的开源库,专为前端开发设计,用于测试和虚拟数据模拟。 "justo-dummy"这个名字可能来源于西班牙语的"justo"(公正的)和英语的"dummy"(模拟的),暗示了它在为应用程序提供公正、规范的...

    SMIC40_PVS_BEOL_FEOL_DUMMY.txt

    基于SMIC40、PVS编写的生成metal dummy的rule。 经测试生成的dummy不会对timing造成影响。 rule文件需要配合Cadence PVS、innovus工具一起使用。

    如何dummy元件.7z

    "如何dummy元件.7z" 这个压缩包文件,显然包含了与Cadence软件相关的操作指南或教程,特别是关于使用“dummy元件”的内容。在Cadence中,dummy元件通常指的是用来辅助布线或优化布局的虚拟组件。 在Cadence线路软件...

    generator-dummy:虚拟发电机用于单元测试

    "generator-dummy"是一个专门为JavaScript开发的虚拟发电机,专用于单元测试场景。这个工具的主要目的是模拟真实数据生成器,帮助开发者在测试环境中创建可控的、可预测的数据流。 在JavaScript生态系统中,有许多...

    单元测试和集成测试业务应用程序

    例如,如果你正在测试一个使用类File,而另一个测试类DummyFile是用来消除对物理文件系统的需要,单元测试的测试类逻辑应该被测试。为了使class实现从真实到虚/存根之间切换,接口代替真正的类使用。所以,你的类应...

    Laravel开发-dummy-data

    在单元测试和集成测试中,开发者通常会使用假数据来模拟不同的输入情况,以确保代码在各种场景下都能正常工作。 7. ** Faker扩展**: 虽然Faker库提供了大量预定义的生成器,但有时我们需要自定义数据生成规则。在...

    前端开源库-source-map-dummy

    在实际项目中,我们可以结合其他构建工具如Webpack、Gulp、Grunt等,通过配置插件来集成 source-map-dummy。例如,如果你正在使用Webpack,可以在配置文件中设置`devtool`属性为`source-map`或`cheap-module-source-...

    Node Dummy (节点虚设).rar_Node Dummy_burstri3_steppedjy7

    掌握Node Dummy的使用不仅能够提升开发者的测试技能,还能帮助他们更好地理解和调试分布式系统的运作机制。对于初学者而言,深入理解Node Dummy的原理和应用将为他们的Node.js开发之路打下坚实的基础。

    dummy_hcd.rar_usb emulator

    6. **开发和调试工具**:为了创建和测试这样的驱动程序,开发者可能使用了诸如GCC编译器、GDB调试器、Makefile构建系统以及USB分析工具(如USBTrace或Wireshark)等工具。 7. **应用领域**:这种USB仿真器在USB设备...

    Pandas_Dummy_Variable

    在这个主题中,我们将深入探讨如何使用Pandas创建哑变量(dummy variables),也称为指示变量或虚拟变量。 哑变量是一种将分类变量转化为数值形式的方法,以便于在统计模型中处理。在机器学习算法中,通常需要输入...

    gen_dummy.py

    给rtl生成dummy文件

    test resource dummy one

    "test resource dummy one"这个标题可能指的是一个用于测试目的的资源集合,其中包含了模拟数据或者占位符,通常在项目开发的早期阶段或自动化测试中使用。"dummy"标签则暗示了这些资源并不是实际生产环境中的数据,...

    dummy-file-testing:虚拟文件用于开发测试

    在"dummy-file-testing"项目中,开发者可能会找到相关的示例、文档和源代码,以便学习如何在自己的项目中使用虚拟文件进行测试。通过熟悉这个库,开发者可以更好地理解和利用虚拟文件测试的优势,提升软件的稳定性和...

    DevOps - Dummy

    DevOpsDummy是一本关于IBM DevOps工具的书籍,由JohnWiley&Sons出版社出版。此书涵盖了DevOps相关的知识点和技术,...考虑到版权页的声明,任何涉及该书内容的进一步传播或使用,都应当严格遵守其版权声明和使用限制。

    bmp dummy_dummy_

    标题 "bmp dummy_dummy_" 暗示我们正在处理一个与位图(BMP)文件格式相关的项目,可能是一个测试或占位符文件,用于激活某个账户。描述 "Dummy file to activate this account" 提示这个文件并非实际内容,而是用于...

    cadence原理图一键标注Dummy.rar

    在电子设计自动化(EDA)领域,Cadence是一款广泛使用的电路设计软件,尤其在集成电路和系统级电路设计中占据重要地位。"cadence原理图一键标注Dummy.rar" 是一个与Cadence软件相关的压缩包,旨在提高工程师在原理图...

Global site tag (gtag.js) - Google Analytics