`
moxie
  • 浏览: 76197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何为model数据的验证写单元测试

阅读更多
假设我们有一个model类Project,它的字段name是必须是唯一。它的单元测试可以如下:
  def test_project_name_should_be_uniqure
    project = Project.create!(:name => 'my project')
    assert_raises(ActiveRecord::RecordInvalid){
      Project.create!(:name => 'my project')
    }
  end

当然,更好的写法是这样:
  def test_project_name_should_be_uniqure
    project = Project.create!(:name => 'my project')
    another_project = Project.new(:name => 'my project')
    assert !another_project.valid?
    assert_equal ['Name has already been taken'],another_project.errors.full_messages
  end
分享到:
评论

相关推荐

    Struts2SpringUnitDemo单元测试

    3. **单元测试**:单元测试是软件开发过程中的重要环节,它验证单个代码单元(如方法或类)的功能是否符合预期。JUnit是Java中最常用的单元测试框架,可以用于编写和运行测试用例。在Struts2SpringUnitDemo中,可能...

    WPF MVVM 开源框架,包含数据验证,很不错的

    3. **ViewModel**:作为Model和View的中介,它包含了用于驱动View显示的属性和命令,同时它也持有对Model的引用,可以处理数据验证和业务逻辑。 **数据验证** 在WPF MVVM框架中,数据验证是必不可少的一部分。它...

    单元测试CMMI文档模板.rar

    单元测试是软件开发过程中的一个重要环节,它是对代码模块进行的独立验证,确保每个功能单元都能按照预期工作。CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是一种评估和改进组织软件开发...

    python单元测试实例代码

    Python单元测试是软件开发过程中的重要环节,它用于验证程序中的最小可测试单元,如函数、方法或类,是否按照预期工作。在这个实例中,我们将深入探讨如何在Python环境中,特别是使用Django Web框架,来编写和执行...

    ASP.NET MVC框架开发系列课程(9):单元测试

    我们可以通过创建无效的数据实例,然后调用`ModelState.IsValid`来测试模型验证规则是否正确生效。 视图的测试相对较少,但有时可能需要验证视图是否能正确渲染。这可以通过将模型数据传递给视图并检查生成的HTML...

    对ASP.NET MVC项目中的视图做单元测试.txt

    真正的视图单元测试应该是针对视图本身的逻辑和行为进行验证,而不是依赖于ViewEngine的具体实现细节。 #### 如何进行有效的视图单元测试 为了进行有效的视图单元测试,我们需要采用一种更加灵活和直接的方法。...

    Struts2单元测试

    5. **插件和自定义组件测试**:如果项目中使用了Struts2的插件或自定义组件,如OGNL表达式处理或国际化,也需要为这些组件编写单元测试。 6. **依赖注入测试**:Struts2支持依赖注入(DI),测试时应确保依赖项被...

    Struts2之Servlet API及单元测试初识案例struts005

    在这个“Struts2之Servlet API及单元测试初识案例struts005”中,我们将探讨Struts2如何与Servlet API结合使用,以及如何进行单元测试。 Servlet API是Java EE平台的核心部分,用于构建动态Web应用程序。Struts2...

    软件单元测试过程概述.pdf

    在单元测试执行阶段,开发人员会编写测试用例,这些用例覆盖了模块的各种输入条件和边界情况,旨在全面检查模块的接口、数据结构、路径和错误处理。测试过程中发现的任何缺陷会被记录和跟踪,以便后续修复。每日的...

    CMMI单元测试说明指南.docx

    本指南详细阐述了如何按照CMMI(Capability Maturity Model Integration,能力成熟度模型集成)标准进行单元测试。 1. **测试对象与目的** - **测试对象**:单元测试的对象是软件开发过程中的可独立编译或汇编的...

    Android-全面的android应用单元测试方法及案例

    本文将深入探讨如何利用Junit、Mockito以及Robolectric这三个强大的工具,来实现对MVP(Model-View-Presenter)架构下的数据层、视图层和逻辑层进行全面的单元测试。 **Junit** 是Java编程语言中最常用的单元测试...

    如何满足ISO26262有效实现单元与集成测试

    模型基础设计(Model-based design)是一种以模型为中心的设计方法,它允许工程师通过图形化模型来表示和验证系统行为,从而提高了开发效率。敏捷开发方法(如Scrum或Kanban)则通过迭代的开发周期,强化了持续集成...

    Simulink模型检查,验证与测试步骤

    1. **静态验证**:使用Model Advisor的静态验证工具,检查模型的结构、数据类型、定时器和子系统配置等。 2. **动态验证**:通过运行模型并比较实际输出与期望结果,例如使用Simulink Test进行仿真测试。 3. **...

    一个最近本SV测试的代码和注释(RAM读写验证)

    总之,这个SV测试例子为RAM读写的验证提供了一个实际的示例,对于学习和实践SystemVerilog测试技术具有很高的价值。通过深入研究,你可以提升你的验证技能,更好地应对复杂数字系统的设计验证挑战。

    tp5自动生成控制器和验证器model层

    Model 负责与数据库交互,Controller 处理用户请求并调用 Model 进行数据处理,而 Validator 则用于数据验证,确保输入的有效性。 在 TP5 中,`tp5自动生成控制器和验证器model层` 的功能主要依赖于命令行工具...

    anjular jasmine 单元测试

    在本文中,我们将详细介绍如何使用Jasmine框架来为Angular控制器编写单元测试。Jasmine是一个行为驱动开发(BDD)测试框架,它允许开发者以描述性的方式来测试JavaScript代码。Angular是一个流行的前端框架,它提供...

    WFP MVVM 验证数据demo

    在Windows Presentation Foundation (WPF)应用程序开发中,MVVM(Model-View-ViewModel)模式被广泛采用,它将用户界面(View)、业务逻辑(ViewModel)和数据模型(Model)分离,提高了代码的可测试性和可维护性。...

    关于silverlight中MVVM模式下的数据验证

    在Silverlight应用开发中,MVVM(Model-View-ViewModel)模式是一种常用的设计模式,它将业务逻辑、用户界面和数据模型分离,提高了代码的可测试性和可维护性。本篇将深入探讨在Silverlight中如何在MVVM模式下进行...

    mvc表单基本验证,前后台数据格式验证等.zip

    编写针对验证规则的单元测试和模拟用户行为的集成测试,确保验证功能在各种情况下都能正常工作。 8. **性能优化**: 考虑到性能,通常会优先进行前端验证,减少服务器负载。但所有验证都应在服务器端执行,以防...

Global site tag (gtag.js) - Google Analytics