问题列表 - 第19122页

你在哪里为私人方法进行单元测试?

在C#类中,将私有函数的单元测试放在哪里?

维基百科一篇文章建议:

  • 将测试与他们正在测试的成员放在同一个类中
  • 使用部分类

就个人而言,这些方法都不合适,我更喜欢将单元测试放在一个单独的项目中.

有什么想法吗?

(我知道关于是否应该对私人方法进行测试存在相当多的争论.我想听听论点的两个方面.)

c# tdd unit-testing encapsulation information-hiding

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

在策略模式中,策略可以将Context作为参数


反馈摘要

我现在将关闭这个(我想没有更多的反馈),并试着总结一下我的理解

  1. 使用"Context"作为我的策略的参数引入了应该避免的紧密耦合,并且还可能迫使我暴露应该保留在类中的属性.
  2. 为了最小化耦合,最好提供所需的值或至少使用接口而不是具体类型的策略.

我正在努力清楚地了解战略模式,并且我问自己,策略取决于上下文是好还是坏.

让我们采取以下经典实现

//The strategy
interface IStrategy  
{  
  void Execute();  
}  

class ConcreteStrategyA : IStrategy
{
  public void Execute()
  {
    Console.WriteLine( "Called ConcreteStrategyA.Execute()" );
  }
}

class ConcreteStrategyB : IStrategy
{
  public void Execute()
  {
    Console.WriteLine( "Called ConcreteStrategyB.Execute()" );
  }
}

//The context
class Context
{
  IStrategy strategy;

  // Constructor
  public Context(IStrategy strategy)
  {
    this.strategy = strategy;
  }

  public void UpdateContext(IStrategy strategy)
  {
    this.strategy = strategy;
  }

  public void Execute()
  {
    strategy.Execute();
  }
}
Run Code Online (Sandbox Code Playgroud)

我见过的所有例子都有非常简单的策略,它们采用基本参数(例如整数).我想知道的是,如果策略使用Context来完成工作,那么是否存在问题.

它会给出类似的东西

//The …
Run Code Online (Sandbox Code Playgroud)

design-patterns strategy-pattern

10
推荐指数
2
解决办法
4615
查看次数

PHP表单令牌使用和处理

我是一名初学者,正在研究PHP中的登录脚本.这是我到目前为止的表单令牌语句:

$_SESSION["form_token"] = md5(rand(time (), true)) ;
Run Code Online (Sandbox Code Playgroud)

该声明是在用户表明他/她想要登录之后发出的.

我有限的理解是,令牌的目的是在唯一的时间点识别唯一用户并伪装表单令牌信息.

然后一切都变得模糊.以下是我的3个未解决的问题:

  1. 何时是出于安全目的"检查"表单令牌的最佳时间?

  2. 我该如何检查?

  3. 什么时候,如果有的话,我"破坏"表单令牌?(IOW,在用户退出之前,表单令牌会保持"活动"状态吗?

php forms login token

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

Java:mytextarea.setText("hello")+ Thread.sleep(1000)=奇怪的结果

我有这样的事情:

for(int i=0; i<5; i++){
    mytextarea.setText("hello " + i);
    try{
        Thread.currentThread().sleep(1000); //to give time for users to read
    } catch(Exception e){}
}
Run Code Online (Sandbox Code Playgroud)

我希望它会在文本区显示"hello 0",等待1秒,然后显示"hello 1",然后等待1秒等.

但是发生的事情是不同的,等待5秒,然后显示"你好4".

任何的想法?

java user-interface multithreading

2
推荐指数
1
解决办法
4546
查看次数

如何用两种不同的语言制作iphone应用程序?

嘿家伙我只是想知道如何用两种不同的语言制作应用程序?我认为我应该创建两个文件,每个文件都包含不同语言的所有变量.是对的吗?

iphone cocoa-touch localization

0
推荐指数
1
解决办法
520
查看次数

在触摸屏移动设备上实现拖放

我刚刚拿到一部Android手机,发现我网站上的拖放不起作用!我理解为什么它不会,但有没有人找到解决方案?我正在使用JQuery来实现D&D ......

browser mobile jquery android mobile-phones

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

cakephp添加记录并修复了一些参数

我确信这种问题必须在cakephp(我最近开始使用)中很常见,但我还没有找到一个明确的答案.

在我的数据库中,我在一对多的关系中拥有称为客户和联系人的表格(Customer hasMany Contact; Contact belongsTo Customer).当我将记录添加到联系人表(/ contacts/add)时,我可以从包含数据库中所有客户的选择框中选择客户(customer_id).如何设置以便我可以先选择客户(/ customers/view/6),然后为该特定客户添加联系人(例如/ contacts/add/6); 然后从"添加联系人"表单中删除选择框(可能用隐藏的customer_id字段替换它)?

mysql cakephp

1
推荐指数
1
解决办法
2854
查看次数

如何检测文件的使用权(DRM)

假设您有一个.wma/.wmv文件,并且您想要检测:

  1. 受DRM保护吗?
  2. (然后有希望)DRM保护的细节(比如许可证何时到期等)?

它有C#/ C++ api吗?似乎Windows Media Player可以执行此操作 - 如果单击该文件上的属性...但Explorer不显示此信息.

注意:我不相信这是一个微不足道的问题,我已经尝试了taglib并在网上搜索了大约2个小时的解决方案.

.net encryption encoding drm wma

3
推荐指数
1
解决办法
2725
查看次数

存储静态大尺寸数组

我需要存储一个40000静态字符串(城镇)的数组.

我怎么能在Objective-C中做到这一点?

objective-c

1
推荐指数
1
解决办法
190
查看次数

使用dired(Emacs)的一个最有用的例子

在Emacs中使用dired模式的最有用的例子是什么?有什么好玩的吗?请回答一个例子.

emacs dired

6
推荐指数
2
解决办法
1337
查看次数