我有一个课我正在添加单元测试.该类有几个构造函数,它们采用不同的类型并将它们转换为规范形式,然后可以将其转换为其他类型.
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) 为什么,在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) 我是C#和任何形式的编程的新手,我有一个问题,似乎在我的大学教师中划分了那些知识.那个问题很简单:我总是要声明一个变量吗?作为我正在谈论的一个基本的例子:如果我有int pounds
,int pence
我需要申报int money
哪个答案,或者只是有:
textbox1.Text = (pounds + pence).ToString();
Run Code Online (Sandbox Code Playgroud)
我知道两种方法都有效,但我在考虑最佳实践.
提前致谢.
我正在尝试使用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) 本地化日期格式描述符的最佳方法是什么?
任何来自不使用mm/dd/yyyy格式的文化的人都知道,必须以这种格式输入日期是很烦人的..NET框架提供了一些非常好的本地化支持,因此根据用户文化解析日期是微不足道的,但是您通常还希望显示有关所需格式的有用提示(尤其是区分yy和yyyy,它们可以互换)大多数文化).
以对大多数用户有意义的方式执行此操作的最佳方式是什么(例如,由于案例的变化以及一到两个字母之间的切换,dd/M/yyy会让人感到困惑).
确定WinForms应用程序是否有可用Internet连接的最佳方法是什么.(当然是以编程方式)如果用户未连接到Internet,我想禁用/隐藏某些功能.
为了便于创作,我正在写这样的哈希:
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)
但有没有更简单的方法来实现同一目标?
我使用以下代码添加注册表项:
var key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(key);
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我可以读回值find,即使在运行之间也是如此.但是,密钥永远不会显示在注册表中,另一个应该读取密钥的程序无法看到它.
该程序在Vista上运行,具有更高的权限.
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并访问这些属性?
在源列表中选择项目时,它将以蓝色突出显示.但是,当选择窗口上的另一个元素时,由于源列表不再聚焦,突出显示变为浅蓝色.
我想改变行为,所以项目总是更深的蓝色,与Finder中看到的行为相同.
c# ×5
.net ×2
cocoa ×1
coding-style ×1
date ×1
java ×1
nstableview ×1
razor ×1
registry ×1
ruby ×1
scala ×1
unboxing ×1
unit-testing ×1
variables ×1
winforms ×1