问题列表 - 第27268页

单元测试:硬依赖MessageBox.Show()

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)

wpf tdd mbunit nunit unit-testing

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

如果断言失败,是否有错误?

我一直遵循逻辑:如果断言失败,那么就有一个错误.根本原因可能是:

  • 断言本身无效(bug)
  • 编程错误(bug)
  • (没有其他选择)

IE有没有其他可以得出的结论?是否存在断言失败并且没有错误的情况?

debugging assert

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

Java - 逐行读取 csv 文件 - 被读取的奇怪的不存在的字符卡住了!

各位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)

java file

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

如何使用RESTEasy客户端框架在POST中发送数据

我正在使用RESTEasy客户端框架来调用RESTful Web服务.调用是通过POST进行的,并将一些XML数据发送到服务器.我该如何做到这一点?

用于实现这一目的的注释的神奇咒语是什么?

java rest resteasy

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

为什么使用库A的C#客户端需要为库B使用一个using语句(A使用)

我有:

  • 主程序类 - 使用库A.
  • 库A - 具有部分类,它们混合了库B中的方法
  • 图书馆B - 混合方法和界面

所以在库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)

.net c# interface

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

在启动时控制竞争条件

我有一些代码,我想要进行一次初始化.但是这段代码没有明确的生命周期,所以在我的初始化完成之前,我的逻辑可能被多个线程调用.所以,我基本上要确保我的逻辑代码"等待"直到初始化完成.

这是我的第一次削减.

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非常适合这项任务.

java concurrency

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

你如何衡量分支错误预测的影响?

我目前正在分析二进制搜索的实现.使用一些特殊指令来衡量这一点,我注意到代码有大约20%的错误预测率.我很好奇是否有任何方法可以检查我可能因此丢失多少个周期.这是一个基于MIPS的架构.

c++ branch

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

在SQL Server的OPENXML函数中将空元素视为空值

我有以下(高度简化的)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并且默认情况下不将其转换为零?

xml t-sql sql-server null openxml

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

使用JQuery解除绑定事件:它是否适用于HTML中的事件设置?

我在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都是唯一的.

谢谢大家

javascript jquery

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

如何在node.js中创建非阻塞异步函数?

如何创建非阻塞异步函数?以下是我想要实现的,但我的程序仍在阻止......

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)

node.js

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