SampleConfirmationDialog可以通过哪些方式进行单元测试?SampleConfirmationDialog将通过验收测试来执行,但是我们如何对它进行单元测试,因为MessageBox不是抽象的而且没有匹配的接口?
public interface IConfirmationDialog
{
/// <summary>
/// Confirms the dialog with the user
/// </summary>
/// <returns>True if confirmed, false if not, null if cancelled</returns>
bool? Confirm();
}
/// <summary>
/// Implementation of a confirmation dialog
/// </summary>
public class SampleConfirmationDialog : IConfirmationDialog
{
/// <summary>
/// Confirms the dialog with the user
/// </summary>
/// <returns>True if confirmed, false if not, null if cancelled</returns>
public bool? Confirm()
{
return MessageBox.Show("do operation x?", "title", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes;
} …Run Code Online (Sandbox Code Playgroud) 我一直遵循逻辑:如果断言失败,那么就有一个错误.根本原因可能是:
IE有没有其他可以得出的结论?是否存在断言失败并且没有错误的情况?
各位java开发人员你好。我有一个非常奇怪的问题。
我正在尝试逐行读取 csv 文件。我刚刚测试了线条的阅读。只有每次我读一行时,该行在文本的每个字符之间都包含方形字符。我什至将文件保存为写字板和记事本中的 txt 文件,没有任何更改。
因此,我一定是在做一些愚蠢的事情......
我有一个 csv 文件,标准的 csv 文件,是的,一个带有逗号的文本文件。我尝试阅读一行文本,但文本全都乱七八糟,无法在文本中找到该短语。
有什么建议吗?下面的代码。
//open csv
File filReadMe = new File(strRoot + "data2.csv");
BufferedReader brReadMe = new BufferedReader
(new InputStreamReader(new FileInputStream(filReadMe)));
String strLine = brReadMe.readLine();
//for all lines
while (strLine != null){
//if line contains "(see also"
if (strLine.toLowerCase().contains("(see also")){
//write line from "(see also" to ")"
int iBegin = strLine.toLowerCase().indexOf("(see also");
String strTemp = strLine.substring(iBegin);
int iLittleEnd = strTemp.indexOf(")");
System.out.println(strLine.substring(iBegin, iBegin + iLittleEnd));
}
//update line
strLine = brReadMe.readLine();
} …Run Code Online (Sandbox Code Playgroud) 我正在使用RESTEasy客户端框架来调用RESTful Web服务.调用是通过POST进行的,并将一些XML数据发送到服务器.我该如何做到这一点?
用于实现这一目的的注释的神奇咒语是什么?
我有:
所以在库B中,当我包含一个实现INode的部分Node类(在库B中定义)时,我突然在我的主类中出现错误,它使用来自库A的Node.错误告诉我在主类中我必须有一个使用语句库B.
有任何想法吗?
编辑 - 除了代码
// *** PROGRAM ***
class Program
{
static void Main(string[] args)
{
var context = new Model1Container();
Node myNode; // ** WITHOUT A using for Library B I have an error here ***
}
}
// ** LIBRARY A
namespace TopologyDAL
{
public partial class Node
{
// Auto generated from EF
}
public partial class Node : INode<int> // to add extension methods from …Run Code Online (Sandbox Code Playgroud) 我有一些代码,我想要进行一次初始化.但是这段代码没有明确的生命周期,所以在我的初始化完成之前,我的逻辑可能被多个线程调用.所以,我基本上要确保我的逻辑代码"等待"直到初始化完成.
这是我的第一次削减.
public class MyClass {
private static final AtomicBoolean initialised = new AtomicBoolean(false);
public void initialise() {
synchronized(initialised) {
initStuff();
initialised.getAndSet(true);
initialised.notifyAll();
}
}
public void doStuff() {
synchronized(initialised) {
if (!initialised.get()) {
try {
initialised.wait();
} catch (InterruptedException ex) {
throw new RuntimeException("Uh oh!", ex);
}
}
}
doOtherStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
我基本上想确保这会做我认为它会做的事情 - 阻止doStuff直到initialised为真,并且我没有错过竞争条件,其中doStuff可能会卡在Object.wait()上那将永远不会到来.
编辑:
我无法控制线程.我希望能够控制何时完成所有初始化,这就是doStuff()无法调用initialise()的原因.
我使用了AtomicBoolean,因为它是值持有者和我可以同步的对象的组合.我本可以简单地使用"public static final Object lock = new Object();" 和一个简单的布尔标志.AtomicBoolean方便地给了我两个.无法修改布尔值.
CountDownLatch正是我想要的.我还考虑过使用含有0许可证的Sempahore.但CountDownLatch非常适合这项任务.
我目前正在分析二进制搜索的实现.使用一些特殊指令来衡量这一点,我注意到代码有大约20%的错误预测率.我很好奇是否有任何方法可以检查我可能因此丢失多少个周期.这是一个基于MIPS的架构.
我有以下(高度简化的)XML文档,我使用OPENXML函数读入我的数据库:
<root>
<row>
<bar>123</bar>
</row>
<row>
<bar>0</bar>
</row>
<row>
<bar></bar>
</row>
</root>
Run Code Online (Sandbox Code Playgroud)
我像这样导入数据库:
insert into [Foo]
([bar])
select
ds.[bar]
from openxml(@xmlHandle, 'root/row', 2)
with ([bar] int) ds
Run Code Online (Sandbox Code Playgroud)
问题是OPENXML将int数据类型的空字段转换为零,因此这将插入到我的表中:
bar
----
123
0
0
Run Code Online (Sandbox Code Playgroud)
我想要插入到我的表中的是:
bar
----
123
0
NULL
Run Code Online (Sandbox Code Playgroud)
如何让OPENXML函数将空字段视为NULL并且默认情况下不将其转换为零?
我在PHP生成的html中有一些onclick和mouseover事件,如下所示:
<div onmouseover="fave('heart_<?php echo $row['id']; ?>';" class="heart"><a href=""></a></div>
Run Code Online (Sandbox Code Playgroud)
我希望在鼠标悬停时使用unbind但是当我尝试这个时它没有用:
$('#'+ id).unbind('mouseover');
Run Code Online (Sandbox Code Playgroud)
所以我猜unbind只适用于JQuery创建的事件?我还能尝试别的吗?
顺便说一句,我无法将我的事件移动到单独的js文件,因为每个id都是唯一的.
谢谢大家
如何创建非阻塞异步函数?以下是我想要实现的,但我的程序仍在阻止......
var sys = require("sys");
function doSomething() {
sys.puts("why does this block?");
while(true);
}
setTimeout(doSomething,0);
setTimeout(doSomething,0);
setTimeout(doSomething,0);
sys.puts("main");
Run Code Online (Sandbox Code Playgroud)