我刚刚开始一个新项目,现在ASP.NET MVC以极其可组合的方式设计,我认为这可能是开始单元测试的好时机.我的大多数代码都是新鲜的,我在编写实际的生产代码之前编写了测试.
不过,我的挫败感是,我花了很多时间来修复测试中的错误,而不是修复我的生产测试中的任何错误.
我的典型工作流程最终会是这样的:
如果你考虑一下,这有点令人期待:单元测试涉及手动产生输出,因此容易出错; 用严格的语言和良好的编码实践编写的代码具有非常自动指定的行为.
当然,有些奇怪的时候,我的生产代码是测试失败的真正原因,但它确实相当罕见.
当然,没有理由完全取消单元测试; 有时我完全不相信自己的代码.另一方面,我开始觉得它并不是那么有价值 - 特别是测试第一哲学.
其他人都有这种感觉吗?
我已经看了一下,并且在解决我遇到的一个小问题时遇到了一些困难.
我基本上有一串HTML,我将其转换为JQuery DOM对象,以便我可以使用JQuery的.remove()轻松删除所有具有某个类的元素.也就是说,
var radHtml = editor.get_html();
var jqDom = $(radHtml);
$(".thickbox", jqDom).remove();
$(".thickboxcontent", jqDom).remove();
editor.set_html(this.innerHTML);
Run Code Online (Sandbox Code Playgroud)
注意:HTML是从RADEditor文本编辑器中的内容派生的,因此没有父HTML标记,因此可以如下所示:
<p>This is a header</p>
<p>this is some content followed by a table </p>
<a href="#TB_inline?height=350&width=400&inlineId=myOnPageContent0" class="thickbox">Test Thickbox</a>
<div id="myOnPageContent0" class="thickboxcontent">
<table class="modal">
<thead>
</thead>
<tbody>
<tr>
<td>item</td>
<td>result</td>
</tr>
<tr>
<td>item 1</td>
<td>1</td>
</tr>
<tr>
<td>item 2</td>
<td>2</td>
</tr>
<tr>
<td>item 3</td>
<td>3</td>
</tr>
</tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
以下是jqDom.html()从上面的HTML返回的内容:
"This is a header"
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种简单的方法可以做到这一点 - 有一些html并删除所有具有某个类(但保留其内容)的元素(在本例中为div).JQuery不必使用,但我想.
操作DOM对象很好 - 它将完整的DOM对象作为我遇到问题的字符串完整地获取.
任何帮助都会很有用.谢谢.
如果有人有使用[C#] FluentValidation的经验,并对下面的问题有任何想法,任何帮助将不胜感激.
我有2个通用列表(都带有字符串数据类型) - "名称"和"URL".它们都具有相同数量的项目,因此索引项目匹配,即名称[0]与Urls [0]相关联.
我遇到的唯一问题是验证每个列表中的空项.我需要的规则是:
如果某个项目在名称[2]中为空,则Url [2]不应为空.如果Url [2]中的项目为空,则Name [2]不应为空.如果它们都是空的那么我们不想验证,我们想忽略.
注意:我在上面的例子中使用了索引2,但它可以是任何东西
到目前为止,我有:
RuleFor(f => f.Names).Must(d => d.All(s => !String.IsNullOrEmpty(s)))
.WithMessage("Names cannot be empty.")
RuleFor(f => f.URLs).Must(urls => urls.All(s => !String.IsNullOrEmpty(s)))
.WithMessage("URLs cannot be empty.")
Run Code Online (Sandbox Code Playgroud)
这检查两个列表中没有项是空的,但是如果另一个列表中的相关项也为空(如果两者都为空,那么我们只想忽略它),我需要能够在一个列表中不验证项为空. .
有任何想法吗?
很快,我将参与一个将使用敏捷项目管理/开发方法的项目,其中包括5周(或大约)2周的冲刺.该项目将使用我在过去发现的DDD设计模式,非常适合单元测试,因此我也非常热衷于将此项目用于此项目.唯一的问题是,我不确定是否可以使用敏捷开发成功实现单元测试:
我感觉如果/当需求发生变化时(特别是在冲刺结束时)并且在紧迫的期限内,单元测试将成为负担.有人对这件事有什么好的建议吗?
这里有一点菜鸟问题......
我在表行列表上有一个javascript函数
<tr onclick="ClosePopup('{ScenarioID}', '{Name}');" />
Run Code Online (Sandbox Code Playgroud)
但是,{Name}值有时可以包含字符"'"
(单引号).目前出现错误预期:')'因为它有效地结束了早期的javascript函数并破坏了语法.
禁止{Name}值中的单引号影响javascript的最佳方法是什么?
干杯!