首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >单元测试EF4存储库代码

单元测试EF4存储库代码
EN

Stack Overflow用户
提问于 2011-09-20 08:51:17
回答 3查看 209关注 0票数 0

在EF4存储库中为以下GetMyObjectsFiltered(...)方法编写单元测试的好方法是什么:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static class MyRepository
{
    public static List<MyObject> GetMyObjectsFiltered(string searchFilter)
    {
        var myQueryableObjects = GetMyObjects(searchFilter);

        if (false == string.IsNullOrWhiteSpace(searchFilter))
        {
            myQueryableObjects = myQueryableObjects.Where(o => o.MyProperty.Contains(searchFilter));
        }

        return myQueryableObjects.ToList();
    }

    private static IQueryable<MyObject> GetMyObjects(string searchFilter)
    {
        using (MyDB_ModelContainer model = new MyDB_ModelContainer())
        {
            return model.MyTable.AsQueryable();
        }
    }

}

我可以在注入MyDB_ModelContainer的同时仍然使用using语句吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-23 07:44:40

最后,我重构了静态类,并在EF上创建了一个非常薄的层,它只返回IQueryable类型。这个类是通过接口实现的,然后可以使用Moles轻松地将其存根。下面的博客文章提供了完整的描述:

票数 0
EN

Stack Overflow用户

发布于 2011-09-20 09:00:42

你问的关于单元测试的问题是多么具有讽刺意味,而且你有一个静态的方法。

重读:Static methods are death to testability

也与你的问题有关..如果你没有业务逻辑,那么单元测试存储库代码就没有必要了,因为你基本上会把ORM作为单元测试的一部分来测试,这是不必要的,因为ORM编写人员已经处理好了。

如果您将静态方法重构为另一个接口实现,那么您可以模拟该接口的实现并将其注入到您的类中。模拟的实现将根据各种条件返回您想要测试的数据。

我建议你看看像moq这样的模拟框架。

因为它有业务逻辑,所以您可以将它移到表示它正在做什么的单独类中。那么您的repo可能仍然是接口,但您将修改新类将使用的数据。

票数 2
EN

Stack Overflow用户

发布于 2011-09-20 08:55:23

没有办法对存储库代码进行单元测试。存储库代码包装了数据访问,因此唯一合理的测试是与真实数据库集成=没有模仿或伪造,而是执行真实代码,并评估它是否从测试数据库返回了正确的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7482465

复制
相关文章
多个checkbox实现单选的checkbox
将多个checkbox添加进一个list中,设置监听,当有一个checkbox被选中时,循环list ,将其他checkbox的选中状态设置为false:
全栈程序员站长
2022/08/30
1.8K0
判断 checkbox 是否选中以及 设置checkbox选中
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154601.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
6K0
radio与checkbox
最近一直在学习Javascript与asp.net MVC4,每天都在跟着书学习。这样总感觉自己看的很抽象,没有点实际的意义。而且,每次看的东西很容易忘记,所以打算在这里记录自己的学习笔记。 Javascript已经看了不少天了,本文主要讲述的是radio与checkbox。 1.radio radio又称单选框,它是html表单中的单选按钮。通常单选按钮是成组出现的,是互斥的,每次只能选取一个。当点击按钮的时候,就会触发onclick事件。通过属性checked判断按钮是否被选中。声明的语法如下:<inp
水击三千
2018/02/27
2.2K0
checkbox选中和不选中的值_设置checkbox选中状态
1.设置选中:$(“#hasApply”).prop(“checked”,true);
全栈程序员站长
2022/08/03
7.8K0
jquery 读取checkbox
html的checkbox控件 是否选中要看有没有checked属性 有就是选中 无论值是什么
ApacheCN_飞龙
2019/02/15
1.3K0
checkbox实现单选
(function(){ (’[name=“XYDJLHFJ”][type=“checkbox”]’).each(function(){ KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … if((this).attr(‘checked’)){ ( ′ [ n a m e = &quot; X Y D J L H F J &quot; ] [ t y p e = &quot; c h e c k b o x &quot; ] [ n a m e = ′ + (&#x27;[name=&quot;XYDJLHFJ&quot;][type=&quot;checkbox&quot;][name=&#x27;+ (′[name=“XYDJLHFJ“][type=“checkbox“][name=′+(this).attr(“name”)+’]’).removeAttr(‘checked’);
全栈程序员站长
2022/09/02
1.1K0
input:checkbox标签
新建 html 文件 16-checkbox.html ,编写下方程序,运行看看效果吧
鹤川
2023/03/21
1.1K0
checkbox 全选和取消
//全选 $("#checkall").click(function () { if (this.checked) { //如果当前点击的多选框被选中 $('input[type=checkbox][name=checkitems]').prop("checked", true); } else { $('i
纯粹是糖
2018/03/14
1.8K0
ElementUI Checkbox 多选框
https://element.eleme.io/#/zh-CN/component/checkbox
py3study
2021/03/12
2.9K0
ElementUI Checkbox 多选框
[WPF 自定义控件]创建包含CheckBox的ListBoxItem
不过它用起来不怎么样,与其这样还不如参考UWP的ListView实现,而且动画效果也很好看:
dino.c
2020/02/21
2.9K0
[WPF 自定义控件]创建包含CheckBox的ListBoxItem
jquery获取checkbox是否选中
在使用jquery的过程中,发现了一个比较特别的属性,那就是 input标签的 checkbox的 是否选中状态
执笔记忆的空白
2020/12/25
2.8K0
jQuery 实现checkBox全选效果
html/jsp代码: <div class="dlnm"> <input type="checkbox" class="omipt" value="111"> 111 <input type="checkbox" class="omipt" value="222"> 222 <input type="checkbox" class="omipt" value="333"> 333 <input type="checkbox" class="omipt" value=
执笔记忆的空白
2020/12/25
3.5K0
小程序checkbox调整大小
.cb{ transform: scale(0.6,0.6); } <view> <label class="lab" for="box1"> <checkbox value="v1" checked class="cb"/>复选框 </label> </view>
苦咖啡
2018/04/28
4.1K0
checkbox的常见问题
1、在使用checkbox时,最好不要阻止他原有的事件,要利用它原有的事件进行控制 2、尽量使用label for属性,不要对input元素的父元素或者input本身绑定事件,这样不能有效的避免冒泡事件, 3、如果想扩大选择区,可以选择扩大label的高度和宽度,不要选择扩大父元素的宽高。 4、如果某一个checkbox不能选中,而本身js又没有对他做任何事件托管,那就要查一下,id是否重复了。 5、checkbox的样式尽量不要自己修改,存在很多兼容性问题,尽量使用插件来改变样式,比如icheck
windseek
2018/06/14
9980
vue checkbox list 增删改
<template>   <div class=”hello”>     <div style=”display:flex;”>       <span @click=”test($event,index);cur=index” v-for=”(item,index) in obj” :key=”item.name” >         <input v-model=”list” type=”checkbox” :label=’item.name’ :value=”item.name” >         
kirin
2021/01/07
5410
checkbox选中和不选中 jqu_jquery怎么设置checkbox不选中?
1、设置不选中:$(“#my-checkbox”).prop(“checked”,false);
全栈程序员站长
2022/09/14
3.7K0
WPF 修改CheckBox样式
它包含一个复选框(ToggleButton)和一个文(Content),改写它,要做的就是修改它们的模板了~
zls365
2021/04/02
2.7K0
checkbox选中和不选中 jqu_jquery checkbox 选中不选中
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
全栈程序员站长
2022/09/07
2.9K0
RadioButton、CheckBox与ToggleButton
1.RadioButton RadioButton被称作为单选框,通常都是以组的形式出现,可以在一组控件中选择一个。 RadioButton的使用首先需要加入<RadioGroup/>,在这个组中,我们进行单选按钮的声明。 1 <RadioGroup 2 android:id="@+id/radioGroup" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_c
水击三千
2018/02/27
1K0
点击加载更多

相似问题

checkbox mvc验证

10

MVC checkBox值

13

MVC Html.Checkbox

218

MVC CheckBox更改事件

12

ASP.NET MVC CheckBox

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文