小编ICR*_*ICR的帖子

如何对构造函数进行单元测试

我有一个课我正在添加单元测试.该类有几个构造函数,它们采用不同的类型并将它们转换为规范形式,然后可以将其转换为其他类型.

public class Money {
    public Money(long l) {
        this.value = l;
    }

    public Money(String s) {
        this.value = toLong(s);
    }

    public long getLong() {
        return this.value;
    }

    public String getString() {
        return toString(this.value);
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,它接受并转换为其他几种类型.

我试图找出测试这些构造函数最合适的方法.

应该有每个构造函数和输出类型的测试:

@Test
public void longConstructor_getLong_MatchesValuePassedToConstructor() {
    final long value = 1.00l;

    Money m = new Money(value);
    long result = m.getLong();

    assertEquals(value, result);
}
Run Code Online (Sandbox Code Playgroud)

这导致了许多不同的测试.如你所见,我很难为它们命名.

应该有多个断言:

@Test
public void longConstructor_outputsMatchValuePassedToConstructor() {
    final long longValue = 1.00l;
    final String stringResult = "1.00";

    Money m …
Run Code Online (Sandbox Code Playgroud)

java unit-testing

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

Scala意外地无法确定扩展功能的类型

为什么,在Scala中,给出:

a = List(1, 2, 3, 4)
def f(x : String) = { x }
Run Code Online (Sandbox Code Playgroud)

a.map(_.toString)
Run Code Online (Sandbox Code Playgroud)

工作,但是

a.map(f(_.toString))
Run Code Online (Sandbox Code Playgroud)

给出错误

missing parameter type for expanded function ((x$1) => x$1.toString)
Run Code Online (Sandbox Code Playgroud)

scala

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

声明变量始终是最佳做法吗?

我是C#和任何形式的编程的新手,我有一个问题,似乎在我的大学教师中划分了那些知识.那个问题很简单:我总是要声明一个变量吗?作为我正在谈论的一个基本的例子:如果我有int pounds,int pence我需要申报int money哪个答案,或者只是有:

textbox1.Text = (pounds + pence).ToString();
Run Code Online (Sandbox Code Playgroud)

我知道两种方法都有效,但我在考虑最佳实践.

提前致谢.

c# variables coding-style

28
推荐指数
4
解决办法
3133
查看次数

如果使用Razor MVC3在div标签内声明

我正在尝试使用Razor View Engine在div标签的类属性中包含if语句.我怎样才能使这个工作,也许有更好的方法来做到这一点?

<div class="eventDay @if(e.Value.Count < 1){Html.Raw("noEvents");}">
Run Code Online (Sandbox Code Playgroud)

如果没有事件,则应添加CSS类noEvents.预期结果:

<div class="eventDay noEvents">
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-mvc-3

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

本地化日期格式描述符

本地化日期格式描述符的最佳方法是什么?

任何来自不使用mm/dd/yyyy格式的文化的人都知道,必须以这种格式输入日期是很烦人的..NET框架提供了一些非常好的本地化支持,因此根据用户文化解析日期是微不足道的,但是您通常还希望显示有关所需格式的有用提示(尤其是区分yy和yyyy,它们可以互换)大多数文化).

以对大多数用户有意义的方式执行此操作的最佳方式是什么(例如,由于案例的变化以及一到两个字母之间的切换,dd/M/yyy会让人感到困惑).

.net globalization date internationalization

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

如何确定您的WinForms应用程序是否可以使用Internet连接?

确定WinForms应用程序是否有可用Internet连接的最佳方法是什么.(当然是以编程方式)如果用户未连接到Internet,我想禁用/隐藏某些功能.

.net c# winforms

13
推荐指数
3
解决办法
6634
查看次数

使用数组值反转哈希

为了便于创作,我正在写这样的哈希:

h = {
    :key1: [:val1, :val2, :val3],
    :key2: [:val4, :val5, :val6]
}
Run Code Online (Sandbox Code Playgroud)

但无论我在哪里使用它,我都需要查找与值相关的键.目前我正在做以下改造:

h = Hash[*{
    :key1: [:val1, :val2, :val3],
    :key2: [:val4, :val5, :val6]
}.map {|key, vals| vals.map {|val| [val, key]}}.flatten]
Run Code Online (Sandbox Code Playgroud)

这给了我想要的东西:

{ :val1 => :key1, :val2 => key1, :val3 => key1, :val4 => key2, :val5 => :key2, :val6 => :key2 }
Run Code Online (Sandbox Code Playgroud)

但有没有更简单的方法来实现同一目标?

ruby

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

在C#中添加注册表项会在我读回时显示,但不会在regedit中显示

我使用以下代码添加注册表项:

var key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(key);
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我可以读回值find,即使在运行之间也是如此.但是,密钥永远不会显示在注册表中,另一个应该读取密钥的程序无法看到它.

该程序在Vista上运行,具有更高的权限.

c# registry windows-vista

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

匿名类型

Dictionary(TKey, TValue)喜欢

Dictionary<int, ArrayList> Deduction_Employees = 
    new Dictionary<int, ArrayList>();
Run Code Online (Sandbox Code Playgroud)

后来我在这个数组列表中添加了这样的匿名类型

var day_and_type = new {
    TheDay = myDay,
    EntranceOrExit = isEntranceDelay
};

Deduction_Employees[Employee_ID].Add(day_and_type);
Run Code Online (Sandbox Code Playgroud)

现在我如何取消打开var并访问这些属性?

c# unboxing anonymous-types

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

当源列表失去焦点时禁用颜色更改

在源列表中选择项目时,它将以蓝色突出显示.但是,当选择窗口上的另一个元素时,由于源列表不再聚焦,突出显示变为浅蓝色.

我想改变行为,所以项目总是更深的蓝色,与Finder中看到的行为相同.

cocoa nstableview

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