小编Kei*_*son的帖子

私人/受保护的方法应该进行单元测试吗?

在TDD开发中,您通常首先要创建接口,然后开始针对该接口编写单元测试.当您逐步完成TDD过程时,您最终会创建一个实现接口的类,然后在某些时候您的单元测试将通过.

现在我的问题是关于我可能必须在我的类中编写的私有和受保护的方法,以支持接口公开的方法/属性:

  • 班级中的私有方法是否应该有自己的单元测试?

  • 班级中受保护的方法是否应该有自己的单元测试?

我的想法:

  • 特别是因为我正在编写接口,我不应该担心受保护/私有方法,因为它们是黑盒子.

  • 因为我正在使用接口,所以我正在编写单元测试以验证定义的合同是否由实现接口的不同类正确实现,所以我再也不担心私有/受保护的方法,并且应该通过调用它的单元测试来执行它们.接口定义的方法/属性.

  • 如果我的代码覆盖率没有显示受保护/私有方法被命中,那么我没有正确的单元测试,或者我有没有被使用的代码,应该被删除.

tdd unit-testing

79
推荐指数
7
解决办法
4万
查看次数

在Vim插入模式下,有没有办法添加文件路径自动完成?

我写了很多shell脚本,而且我不断地进入文件路径.我想知道是否有人知道在插入模式下让Vim自动完成文件路径的方法,就像你在你最喜欢的shell中一样,你可以选择完成目录或文件的路径.

如果您可以CTRLD将shell的功能转换为Vim插入模式(即查看当前路径中的文件/目录),则可获得额外的功劳.

vim shell autocomplete text-editor

78
推荐指数
3
解决办法
3万
查看次数

雷克到底是什么人?

简单来说,Rake做什么?它有什么用途?我知道它是一个构建工具,但我看起来更详细一点.(对于一个傻瓜.)

ruby rake ruby-on-rails

76
推荐指数
4
解决办法
3万
查看次数

IEnumerable没有Count方法

我有以下方法:

public bool IsValid
{
  get { return (GetRuleViolations().Count() == 0); }
}

public IEnumerable<RuleViolation> GetRuleViolations(){
  //code here
}
Run Code Online (Sandbox Code Playgroud)

为什么当我在.Count()上面做时它用红色加下划线?

我收到以下错误:

错误1'System.Collections.Generic.IEnumerable'不包含'Count'的定义,并且没有扩展方法'Count'接受类型'System.Collections.Generic.IEnumerable'的第一个参数可以找到(你错过了吗?使用指令或程序集引用?)c:\ users\a\documents\visual studio 2010\Projects\NerdDinner\NerdDinner\Models\Dinner.cs 15 47 NerdDinner

c# asp.net enumerable

76
推荐指数
2
解决办法
5万
查看次数

如何在新选项卡(而不是新窗口)中打开链接?

我有一个"打开"按钮,用于"计算"应在新标签页中打开的链接.我尝试使用:

window.open(url, '_blank');
Run Code Online (Sandbox Code Playgroud)

但这开启了一扇新窗口.

我也尝试了以下方法:

<form id="oform" name="oform" action="" method="post" target="_blank">
</form>

...

document.getElementById("oform").action = url;
document.getElementById("oform").submit();
Run Code Online (Sandbox Code Playgroud)

仍然会打开一个新窗口,而不是新选项卡.

使用简单的<a href...>with时target='blank',链接将在新选项卡中打开.

有解决方案吗?

html javascript

73
推荐指数
3
解决办法
6万
查看次数

为什么我们需要ng-click?

Angular应用程序使用ng-click()属性而不是onclick事件.

为什么是这样?

javascript web-applications angularjs

73
推荐指数
2
解决办法
4万
查看次数

如何将可视模式下的文本块保存到Vim中的文件?

标题非常具有描述性.为了以防万一,我举一个例子:

START BLOCK1
something
END BLOCK1

START BLOCK2
something
somenthing...
END BLOCK2
Run Code Online (Sandbox Code Playgroud)
  1. 我选择了BLOCK1视觉模式
  2. 我按下它来猛拉它 y
  3. 如何将拉出来保存BLOCK1到其他文件中?

vim file save selection

71
推荐指数
3
解决办法
2万
查看次数

在Vim中进行平滑滚动的最佳方法是什么?

Vim中的主要滚动命令是:

  1. Ctrl- B和Ctrl- F,以及PageUp和PageDown通过全页面滚动
  2. Ctrl- U并Ctrl- D默认滚动半页
  3. Ctrl- Y并Ctrl- E滚动一行

对于前两者,我每次都失去视觉背景,所以我养成了重复击中后者(Ctrl- Y和Ctrl- E)的坏习惯.

由于目前没有第一方支持平滑滚动,最不受欢迎的变通办法/插件是什么?

我根据任务使用Vim和GVim,如果没有一个真正好的hack适用于两者,我很乐意单独定制它们.鼠标滚轮在GVim中运行良好,但我正在寻找基于键盘的解决方案.

vim scroll smooth-scrolling

70
推荐指数
4
解决办法
4万
查看次数

如何在JavaScript中舍入数字?

在处理项目时,我遇到了一个由前员工创建的JS脚本,该脚本基本上以一种形式创建了一个报告

Name : Value
Name2 : Value2
Run Code Online (Sandbox Code Playgroud)

等等

问题是这些值有时可能是浮点数(具有不同的精度),整数,甚至是形式2.20011E+17.我想输出的是纯整数.不过,我不太了解很多JavaScript.我将如何编写一个有时采用浮点数并使它们成为整数的方法?

javascript floating-point numbers rounding

65
推荐指数
6
解决办法
9万
查看次数

在Vim中自动插入匹配的括号

我花的方式太多时间摸索周围因为Vim不处理花括号最喜欢的IDE做.这就是我想要发生的事情:

输入:

if( whatever )
{ <CR>
Run Code Online (Sandbox Code Playgroud)

得到这个:

if( whatever )
{
  |  
}
Run Code Online (Sandbox Code Playgroud)

其中<CR>意思是ENTER按键,|是光标的位置.这就是Eclipse的功能.这就是Visual Studio的功能.这就是我想让Vim做的事情.

我见过几个插件,试过几个,但似乎没有一个插件给我这种行为.当然,我不能成为第一个想要这个的程序员.

vim autocomplete

64
推荐指数
9
解决办法
5万
查看次数