问题列表 - 第17223页

如何对代码进行分解以简化可测试性?

我正在学习单元测试,并想知道如何编写可测试的代码.但是,我不确定如何在不使其复杂的情况下编写可测试代码.我将采用着名的汽车和发动机问题来描述问题.

class Car
{
private:
   Engine m_engine;

public:
   Car();
   // Rest of the car
}
Run Code Online (Sandbox Code Playgroud)

我提出了以下解决方案,以使上述代码可测试.

  1. 更改Car的构造函数以将Engine作为参数.然后模拟引擎并进行测试.但是,如果我没有不同类型的引擎,那么参数化构造函数似乎是不合适的,只是为了使它可测试.

  2. 使用setter然后将模拟引擎传递给setter.与上述相同的流程.

  3. 首先测试引擎,然后使用经过验证的引擎(或使用存根引擎)测试汽车.

我必须在代码上测试哪些替代方案?每种方法的优点和缺点是什么?

c++ tdd unit-testing

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

JavaScript中的变量赋值

我有一个js功能

我想为变量赋一个变量

我的变量是在forloop中

我有两个变量

即;

var spcd_1= "http://www.colbridge.com";
var spcd_2 = "http://www.google.com";
Run Code Online (Sandbox Code Playgroud)

下面是我的js功能

function openNewWindow(spcd) {
//alert("hello");
var tt = spcd;
alert(tt);
var i=0;
var spcd_1= "http://www.colbridge.com";
var spcd_2 = "http://www.google.com";
for(i=1;i<3;i++)
{
var theurl="'spcd_'+i";
 popupWin = window.open(theurl,
 '_blank',
 'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480, left=0, top=0')

}
}
Run Code Online (Sandbox Code Playgroud)

我的问题在这里

var theurl=spcd_+i;
Run Code Online (Sandbox Code Playgroud)

我想改变theurl价值spcd_1spcd_2

如何在for循环中正确分配

var theurl=spcd_+i;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我正确的方法.

谢谢

javascript variables

0
推荐指数
2
解决办法
818
查看次数

Tomcat每个webapp内存设置

我在tomcat中运行了两个webapplication.Java堆空间是为Tomcat分配的,并且它为两个appliaction共享.在那一个应用程序消耗更多,其他应用程序获得OUT_OF_MEMORY.

有没有办法为每个Web应用程序设置内存设置.对于一个webapp,说70%,从分配给Tomcat的整个内存中说30%.

关心Ganesh

memory tomcat web-applications setting

5
推荐指数
2
解决办法
3247
查看次数

如何将派生类序列化为其基类

我有一个派生类,只向基类添加方法.如何序列化派生类以使其与基类的序列化相匹配?即派生类的序列化xml应如下所示:

<BaseClass>
  ...
</BaseClass>
Run Code Online (Sandbox Code Playgroud)

例如,以下内容将抛出InvalidOperationException"未预期类型DerivedClass.使用XmlInclude或SoapInclude属性指定静态未知的类型."

Class BaseClass {}

Class DerivedClass : BaseClass {}

DerivedClass derived = new DerivedClass();

StreamWriter stream = new StreamWriter("output file path");
XmlSerializer serializer = new XmlSerializer(GetType(BaseClass));
serializer(stream, derived);
Run Code Online (Sandbox Code Playgroud)

.net serialization

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

显示套接字选项

我如何从shell中看到设置了哪些套接字选项?特别是我很有兴趣知道是否设置了SO_BROADCAST?

linux shell

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

在shell中用双引号字符串转义反引号

对于命令:/ usr/bin/sh -c"ls 1`"(1之后的反引号).

如何让它成功运行?在"`"之前添加反斜杠不起作用.`是我们所知道的一个特殊字符,我也尝试使用单引号将其包围起来(/ usr/bin/sh -c"ls 1'`'"),但这也不起作用.

错误始终是:

% /usr/bin/sh -c "ls 1\`"
Unmatched `
Run Code Online (Sandbox Code Playgroud)

shell quotes quoting backticks

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

将ContentPresenter.Content强制转换为UIElement是否合适?

是否有任何情况下a的内容ContentPresenter将是某个对象而不是UIElement?鉴于该字段被声明为对象而不是a UIElement,似乎可能存在.但是,我想不出它会出现的任何情况,或者即使它是有效的.

ContentPresenter presenter = GetTemplateChild(PART_Presenter) as ContentPresenter;
UIElement myElement = (UIElement)presenter.Content;
myElement.SomeUIMethod(); // possible InvalidOperationException?
Run Code Online (Sandbox Code Playgroud)

c# wpf contentpresenter uielement

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

如何检测单击了哪一行[tr]?

在javascript中,我们如何检测表格的哪一行被单击?目前我正在做的是,我正在像这样在运行时绑定该方法。

onload = function() {
    if (!document.getElementsByTagName || !document.createTextNode) return;
    var rows = document.getElementById('my_table').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
    for (i = 0; i < rows.length; i++) {
        rows[i].onclick = function() {
            alert(this.rowIndex + 1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

[复制自[ http://webdesign.maratz.com/lab/row_index/ ]]

但是我不喜欢这种方法。有没有其他选择?我的问题只是获取被单击的行的索引。

  • 没有jQuery请:D。

javascript

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

如何将实体集合传递给.NET RIA数据服务?

是否可以将对象集合传递给RIA数据服务查询?我在发送实体,Int或基本类型数组时没有问题,但只要我声明这样的方法

public void GetLessonsConflicts(Lesson[] lessons)
{
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误

"名为'GetLessonsConflicts'的操作不符合所需的签名.参数类型必须是实体类型或预定义的可序列化类型之一"

我只是在保存数据之前尝试在服务器端进行一些验证.我试过List,IEnumerable等.

谢谢

silverlight dataservice wcf-data-services

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

C中函数的局部变量范围

当我开始用C语言编程时,我听说过以下场景.

" 尝试从外部访问,函数局部变量将导致错误(或垃圾值).因为当我们从函数返回时堆栈被清除 "

但我的下面的代码示例打印值为50.我正在使用最新的GCC编译器编译代码.

#include <stdio.h>

int * left();

int main()
{
      int *p=left();
      printf("%d\n",*p);
      return 0;
}

int * left()
{
        int i=50;
        return &i;
}
Run Code Online (Sandbox Code Playgroud)

在这个问题上欢迎我.

我能知道C++中的行为吗?它类似于c ..

c c++ scope

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