• 单元测试初入


    单元测试的优点

    • 方便修改代码且不引人新的bug。
    • 可大胆重构,提高代码的质量和提升个人编码能力。
    • TDD驱动,降低代码间的耦合,保证代码质量,快速理清理解代码.

    框架

    1. 单元测试框架:XUnit 2.2.0。asp.net mvc就是用的这个,此内框架还有:NUnit、MSTest等
    2. 测试运行工具:xunit.runner.visualstudio 2.2.0。类似如:Resharper的xUnit runner插件。
    3. 模拟框架:Moq 4.7.10。 asp.net mvc、Orchard使用了。此类框架还有:RhinoMocks、NSubstitute、FakeItEasy等

    概念过程:

      • AAA逻辑顺序
        • 准备(Arrange)对象,创建对象,进行必要的设置
        • 操作(Act)对象
        • 断言(Assert)某件事情是预期的。
      • Assert(断言):对方法或属性的运行结果进行检测
      • Stub(测试存根桩对象):用返回指定结果的代码替换方法(去伪造一个方法,阻断对原来方法的调用,为了让测试对象可以正常的执行)
      • Mock(模拟对象):一个带有期望方法被调用的存根(可深入的模拟对象之间的交互方式,如:调用了几次、在某种情况下是否会抛出异常。mock是一种功能丰富的stub)

    好的测试

      • 测试即文档
      • 无限接近言简意赅的自然化语言
      • 测试越简明越好,每个测试只关注一个点。
      • 好的测试足够快,测试易于编写,减少依赖
      • 好的测试应该相互隔离,不依赖于别的测试,不依赖于外部资源
      • 可描述的命名:UnitOfWorkName_ScenarioUnderTest_ExpectedBehavior(命名可团队约定,我甚至觉得中文命名也没什么不可以的)
        • UnitOfWorkName  被测试的方法、一组方法或者一组类
        • Scenario  测试进行的假设条件,例如“登入失败”,“无效用户”或“密码正确”等
        • ExpectedBehavior  在测试场景指定的条件下,你对被测试方法行为的预期 

    原文地址:http://www.cnblogs.com/zhaopei/p/UnitTesting.html

    Life is colourful
  • 相关阅读:
    git 删除远程文件、文件夹
    pod install太慢 可以使用代理的方式
    flutter Container()最小宽度 最小高度
    flutter common init 常用Widget初始化
    xcode 嵌入flutter_module后编译报错 This app could not be installed at this time.
    Spring AOP
    Spring @Value 配置项解析 vs Spring @ConfigurationProperties 配置项解析
    Spring Bean 的实例化过程
    SpringBoot 配置项解析
    Spring IOC 自动注入流程
  • 原文地址:https://www.cnblogs.com/cheney123456/p/6929364.html
Copyright © 2020-2023  润新知