不知道如何解决这个问题,尝试对方法"GetByTitle"进行单元测试
以下是我的定义:
public class ArticleDAO : GenericNHibernateDAO(IArticle, int>, IArticleDAO
{
public IArticle GetByTitle(string title)
{
IQuery query = Session.CreateQuery("...")
return query.UniqueResult<IArticle>();
}
}
public interface IArticleDAO
{
IArticle GetByTitle(string title);
}
Run Code Online (Sandbox Code Playgroud)
单元测试:
[Test]
public void can_load_by_title()
{
_mockDaoFactory.Setup(x => x.GetArticleDao())
.Returns(_mockArticleDao.Object);
_mockArticleDao.Setup(x => x.GetByTitle("some title"))
.Returns(article1.Object);
_articleManager.LoadArticle("some title");
Assert.IsNotNull(_articleManager.Article);
}
Run Code Online (Sandbox Code Playgroud)
运行测试给出了错误:
System.ArgumentException: Invalid setup on a non-overridable member:
x => x.GetByTitle("some title")
Run Code Online (Sandbox Code Playgroud)
更新
我[Setup]看起来像:
[Setup]
public void SetUp()
{
_mockDaoFactory = new Mock<IDaoFactory>();
_mockArticleDao = new Mock<ArticleDao>();
_articleManager …Run Code Online (Sandbox Code Playgroud) 在main()函数中创建一个对象时,它的析构函数是否在程序终止时被调用?我会假设,因为main()仍然有一个范围(整个程序),但我只是想确定.
示例:我有一个$variable = "_foo",我想确保$ variable不以下划线开头"_".我怎么能用PHP做到这一点?是否有一些访问字符串后面的char数组?
我的网站上有一个密码更改页面,我想限制访问IP范围,例如10.0.0.0 - 10.255.255.255(10/8前缀).
当用户进入页面时,它将检查用户是否在此IP范围内.如果用户在范围内,则显示欢迎消息; 如果没有,那么它会将用户重定向到登录页面.
我正在开发一个项目,它将使用大量选择菜单输入各种数据.我想直接在select中包含一个'other'选项,它将触发一个简单的对话框,并允许用户输入一个自定义值(如果适用),类似于以下javascript代码:
<script type="text/javascript" language="javascript">
function chkother(fld,len,idx) {
if ((idx+1)==len) {
other=prompt("Please indicate 'other' value:");
fld.options[idx].value=other;
fld.options[idx].text=other;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
适用于选择:
<select onchange="chkother(this,this.options.length,this.options.selectedIndex)" name="example" id="example" class="formSelect">
<option value=""></option>
<option value="yes">yes</option>
<option value="no">no</option>
<option value="other">other</option>
</select>
Run Code Online (Sandbox Code Playgroud)
并显示一个提示,它将使用用户文本更新选项.
我想使用jquery做类似的事情,所以我可以看看扩展功能和学习一些jquery,但是我开始时遇到了麻烦.
我有两个数据簇,每个簇有x,y(坐标)和一个知道它的类型的值(1 class1,2 class 2).我已经绘制了这些数据,但我想用边界(视觉)分割这些类.做这种事的功能是什么.我试过轮廓但它没有帮助!
我已经为iPhone开发了很长一段时间,我一直在想是否有任何数组对象在Obj-C中使用循环缓冲区?像Java的堆栈或列表或队列.我一直在修补NSMutableArray,测试它的限制......似乎在数组中的50k个简单对象之后 - 应用程序显着减慢了速度.
那么,除了NSMutableArray之外还有更好的解决方案(大量数据变得非常慢).如果没有,任何人都可以告诉我有关创建这样一个对象的方法(会涉及使用链(节点)对象??).
底线:直接从SQLite DB填充UITableView会很聪明吗?因为它不需要来自数组或任何内容的内存,而只需要查询.SQLite速度快,而不是内存磨削.
非常感谢你的时间和关注,〜纳塔纳维拉.
从我一直以来的看来,Quinn的课程似乎是最好的选择.我有另一个问题 - 从SQLite DB直接加载所有内容而不是创建一个对象并将其推入一个数组会更快或更聪明吗?
提前谢谢你~~ Natanavra.
对于这个问题,我会尽可能的直接,因为必须有一些我完全不知道来自结构化编程背景的东西.
说我有一个Player类.这个Player类可以改变它在游戏世界中的位置.我将此方法称为warp(),它将Position类实例作为参数来修改Player的内部位置.这在OO术语中对我来说是完全合理的,因为我要求玩家"做"某事.
除了修改球员位置之外我还需要做其他事情.例如,假设我需要将该扭曲事件发送给在线游戏中的其他玩家.该代码是否也应该在Player的warp()方法中?如果没有,那么我会想象在服务器类中声明某种辅助方法,比如warpPlayer(播放器,位置).这样做似乎可以减少玩家作为一系列吸气者和制定者所做的一切,或者我在这里错了?这是完全正常的吗?我已经无数次地读过一个暴露一系列getter/setter的类表明一个非常糟糕的抽象(用作数据结构而不是类).
当您需要保留数据并将其保存到文件时,会出现同样的问题.由于将播放器"保存"到文件与Player类处于不同的抽象级别,因此在播放器类中使用save()方法是否有意义?如果没有,就像savePlayer(播放器)一样在外部声明它意味着savePlayer方法需要一种方法来从Player类中获取它所需的每一段数据,最终暴露出类的整个私有实现.
因为OOP是今天最常用的设计方法(我假设?),所以我必须要解决这些问题.我和我的同行一起讨论了它,他们也做了轻微的开发,他们也有与OOP完全相同的问题.也许只是结构化编程背景使我们无法理解OOP的全部好处,而不仅仅是提供设置和获取私有数据的方法,以便从一个地方更改和检索它.
在此先感谢,希望我听起来不像白痴.对于那些真正需要了解与此设计相关的语言的人来说,它是服务器端的Java和客户端的ActionScript 3.
我想在我的程序中嵌入一个小聊天窗口,它将作为一个基本的IRC客户端.这需要有限的功能,例如连接,断开连接,列出用户和发送私人消息.
在编写时,我尝试了几个膨胀的库,这使得创建一个简单的应用程序变得非常困难(连接许多事件,处理我不感兴趣的频道,模式等等).我试过的其他库是为旧版本的.NET开发的,并且充满了弃用警告.如何在C#中开发轻量级IRC客户端?
我很好奇-是Qt的信号和槽(代表图案?)仅用于GUI回调或他们是完美的罚款,并打算对整个应用程序?我的意思是,将应用程序拆分为小型,自包含的对象(类)并通过信号和插槽进行互连是否更好.如果是这样,从信号返回值的推荐方法是什么(用于返回某些东西的类似请求的信号),因为Qt的信号返回值被忽略.