在单元测试设计中,很容易陷入实际上只是调用实现逻辑的陷阱.
例如,如果测试整数的数组,它都应该是比其他(2,4,6,8,等)更高的二,是不是真的足以从所述方法得到的返回值,并断言,这种模式是这样?
我错过了什么吗?通过以多种方式测试相同的期望,似乎需要使单个单元测试方法更加健壮.所以上面的期望可以通过检查两个增加断言正在发生的事情,而且在未来数整除由2或者这只是多余的逻辑是什么?
那么简而言之,单元测试应该以多种方式测试一个期望吗?例如,如果我想测试我的裤子适合我,我会/可以测量长度,把它放在旁边,我的腿,看到了比较,等等.这是那种需要进行单元测试的逻辑?
谢谢
如何序列化动态表单输入?
<table id="mytable">
<form id="myform">
<tbody>
<tr><td><input type="text" name="row0"></td></tr> <!-- dynamically generated -->
<tr><td><input type="text" name="row1"></td></tr> <!-- dynamically generated -->
<tr><td><input type="text" name="row2"></td></tr> <!-- dynamically generated -->
<tr><td><input type="text" name="row3"></td></tr> <!-- dynamically generated -->
</tbody>
<tfoot>
<tr><td><input type="button" id="save" value="SAVE"></td></tr> <!-- static -->
</tfoot>
</form>
</table>
Run Code Online (Sandbox Code Playgroud)
我想用jQuery从php加载信息
$('#save').click(function(){
$.ajax({
type: "POST",
url: "post.php",
data: $('#myform').serialize(),
success: function(msg){
console.log(msg);
}
});
});
Run Code Online (Sandbox Code Playgroud)
如果没有动态生成行,这将没有问题,但我无法弄清楚如何访问或序列化动态内容.
我有一个复杂的嵌套对象层次结构,所有子对象(存储在父类中的对象数组)包含一个链接回其父级的属性:相当简单和直接,没有实际问题.如果我对层次结构中的任何对象执行var_dump,我将在转储中获得递归引用,正如我所期望的那样.
FIRSTGEN
_children array of objects of type SECONDGEN
SECONDGEN #1
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #1
_parent object of type SECONDGEN
THIRDGEN #2
_parent object of type SECONDGEN
SECONDGEN #2
_parent object of type FIRSTGEN
_children array of objects of type THIRDGEN
THIRDGEN #3
_parent object of type SECONDGEN
Run Code Online (Sandbox Code Playgroud)
我最近在该层次结构中添加了一些新元素,但它们并没有遵循相同的模式.它们存储在顶级父级的对象数组中,但包含一个属性,将它们链接回来,而不是它们的父级,而是一个兄弟级.当我现在执行var_dump时,我得到一个"致命错误:嵌套级别太深 - 递归依赖?".
FIRSTGEN
_children_1 array of objects of type SECONDGEN_1
SECONDGEN_1 #1
_parent object of type FIRSTGEN
_children array of objects …Run Code Online (Sandbox Code Playgroud) 可以将ClickOnce配置为删除旧的已发布目录吗?
要么
是否有人编写了一些代码来删除这些发布目录(可能保留最后10个)?
目前,每次完成ClickOnce发布时,都会在IIS服务器上创建一个新目录.此NEW目录包含整个应用程序的副本,该副本将被下载.旧目录似乎不再使用,只是占用了大量空间.
以下是正在创建的目录名称的示例.如您所见,名称中正在使用应用程序版本号.
EduBenesysNET_1_0_1_0
EduBenesysNET_1_0_1_1
......
EduBenesysNET_1_0_1_192
EduBenesysNET_1_0_1_193
我们有194个(零基础)构建,每个目录都在那里.一个构建的大小约为50mb,你可以看到如何保留旧目录将开始吞噬磁盘空间.
我们的应用程序的工作方式是您始终必须下载最新版本.您没有跳过下载的选项,所以我希望删除旧目录应该不是问题.
我有一串packed值,这些值是使用以下内容顺序创建的:
while (...) {
...
$packed .= pack( 'L', $val );
}
Run Code Online (Sandbox Code Playgroud)
在另一个程序中,我加载后$packed,我想知道实际打包了多少个值.我知道如何做到这一点unpack:
my @vals = unpack( 'L*', $packed );
print scalar(@vals);
Run Code Online (Sandbox Code Playgroud)
但这真的有必要吗?如果我只关心值的数量,我可以做得更好并跳过unpacking吗?
我正在研究Umbraco XSL样式表,我很困惑.
基本上,我有一个参数,我测试并使用它的值,如果它存在,否则我使用默认参数$currentPage.
这是参数
<xsl:param name="source" select="/macro/sourceId" />
<xsl:param name="currentPage" />
Run Code Online (Sandbox Code Playgroud)
这是变量
<xsl:variable name="current">
<xsl:choose>
<xsl:when test="$source > 0">
<xsl:copy-of select="umbraco.library:GetXmlNodeById($source)" />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$currentPage" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
这就是我使用它的地方
<xsl:for-each select="msxml:node-set($source)/ancestor-or-self::* [@isDoc and @level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
... code here ...
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
这有效
<xsl:variable name="source" select="$currentPage" />
Run Code Online (Sandbox Code Playgroud)
事实并非如此
<xsl:variable name="source">
<xsl:copy-of select="$currentPage" /> <!-- Have tried using <xsl:value-of /> as well -->
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
那么如何在不使用select=""属性的情况下复制变量.
更新:我尝试过使用另一种方法(见下文),但我得到一个超出范围异常的变量.
<xsl:choose> …Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我如何在bash中的双字符串中避免双引号?
例如在我的shell脚本中
#!/bin/bash
dbload="load data local infile \"'gfpoint.csv'\" into table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY \"'\n'\" IGNORE 1 LINES"
Run Code Online (Sandbox Code Playgroud)
我无法\"正确使用双引号转义来获取ENCLOSED BY .我不能对我的变量使用单引号,因为我想使用变量$dbtable.
我在bitbucket.org上创建了私有存储库.我想从IntelliJ IDEA中使用它.
我选择"从版本控制中退出",并且有带字段Mercurial Repository URL和Test Repository按钮的消息框.
我该Mercurial Repository URL怎么办?
我试过了
http://bitbucket.org/my_user_name/my_repo_name,https://,和https://my_user_name@bitbucket.org/my_user_name/my_repo_name.什么都行不通.
当我点击时,Test Repository我总是收到消息"存储库测试失败了".
我认为这是因为没有用户名和密码的字段,但我不能以某种方式输入这些数据?
我正在编写一个测试用例,其中我想为一个测试用例运行一个DataPoint,为第二个测试用例运行第二个DataPoint.
@RunWith(Theories.class)
public class DummyTest {
@DataPoints
public static String[] getFileNames() {
return new String[] { "firstFile.txt","firstFile1.txt" };
}
@Theory
public void test1(String fileName) throws Exception {
System.out.println(fileName);
assertThat(true, is(equalTo(Boolean.TRUE)));
}
@DataPoints
public static String[] getSecondFileNames() {
return new String[] { "secondFile.txt","secondFile1.txt" };
}
@Theory
public void test2(String fileName) throws Exception {
System.out.println(fileName);
assertThat(true, is(equalTo(Boolean.TRUE)));
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在第一个测试用例中我的第一个数据点是getFileNames方法,而第二个测试用例则应该调用getSecondFileNames数据点.任何人都可以建议这是可行的吗?
谢谢,
谢卡尔
如何从对象中获取所有方法的列表?我知道我可以这样得到对象类:
var className:String = flash.utils.getQualifiedClassName( myObject );
var objClass:Class = flash.utils.getDefinitionByName( className ) as Class;
Run Code Online (Sandbox Code Playgroud)
它给了我一个类原型,但不能用它做任何事情......在JavaScript中我可以迭代一个对象的原型来获得它的属性和方法.
在ActionScript 3中可以实现吗?对ActionScript 3进行元编程/反射有什么好的来源吗?
谢谢!