与brnwdrng的问题类似,我正在寻找一种搜索类似JSON的对象的方法.
假设我的对象的结构是这样的:
TestObj = {
"Categories": [{
"Products": [{
"id": "a01",
"name": "Pine",
"description": "Short description of pine."
},
{
"id": "a02",
"name": "Birch",
"description": "Short description of birch."
},
{
"id": "a03",
"name": "Poplar",
"description": "Short description of poplar."
}],
"id": "A",
"title": "Cheap",
"description": "Short description of category A."
},
{
"Product": [{
"id": "b01",
"name": "Maple",
"description": "Short description of maple."
},
{
"id": "b02",
"name": "Oak",
"description": "Short description of oak."
},
{
"id": …Run Code Online (Sandbox Code Playgroud) 假设以下模板方法实现:
public abstract class Abs
{
void DoYourThing()
{
log.Info("Starting");
try
{
DoYourThingInternal();
log.Info("All done");
}
catch (MyException ex)
{
log.Error("Something went wrong here!");
throw;
}
}
protected abstract void DoYourThingInternal();
}
Run Code Online (Sandbox Code Playgroud)
现在,有很多关于如何测试Abs类的信息,并确保DoYourThingInternal调用它.
但是,假设我想测试我的Conc课程:
public class Conc : Abs
{
protected override void DoYourThingInternal()
{
// Lots of awesome stuff here!
}
}
Run Code Online (Sandbox Code Playgroud)
我不想这样做conc.DoYourThing(),因为这将调用已经单独测试的父方法.
我想只测试重写方法.
有任何想法吗?
假设我有几个OrderProcessors,每个都处理一个不同的订单.
决定OrderProcessor使用哪个是根据Order对象的属性完成的,并由工厂方法完成,如下所示:
public IOrderProcessor CreateOrderProcessor(IOrdersRepository repository, Order order, DiscountPercentages discountPercentages)
{
if (order.Amount > 5 && order.Unit.Price < 8)
{
return new DiscountOrderProcessor(repository, order, discountPercentages.FullDiscountPercentage);
}
if (order.Amount < 5)
{
// Offer a more modest discount
return new DiscountOrderProcessor(repository, order, discountPercentages.ModestDiscountPercentage);
}
return new OutrageousPriceOrderProcessor(repository, order);
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是我想验证返回的OrderProcessor是否已收到正确的参数(例如 - 正确的折扣百分比).
但是,这些属性在OrderProcessor实体上不公开.
您如何建议我处理这种情况?
我能够提出的唯一解决方案是制作OrderProcessor公众的折扣百分比属性,但仅仅为了单元测试而这样做似乎有点过头了......
我将从最后开始:
在我的C#程序中,我有一个包含HTML的字符串,我想从这个字符串中的元素中删除所有内联样式属性(style=".."),以及所有以'abc'开头的类.
我愿意为此使用正则表达式,即使有些人喋喋不休 :).
(一个解释,对于那些希望指责我解析HTML字符串的人:
我被迫对我的项目使用一些不太理想的Web控件.控件被设计为在服务器端使用(即使用回发和所有这些)东西),但我需要在ajax调用中使用它.
这意味着我必须在代码中配置它,调用它的Render()方法,它给我HTML字符串,并将该字符串传递给客户端,在那里插入在适当的地方使用DOM.不幸的是,我无法找到控件的正确配置来阻止它使用这些无用的样式和类来呈现自己,所以我不得不手动删除它们.请不要恨我.)
所以我开始使用量角器,我想调试我的测试代码:
describe('stuff', function(){
it('should find the specs item, and its empty', function(){
browser.debugger();
gotoHome();
var allItems = element.all('li in model.tags');
var specsDashboardElement;
for (var i=0 ; i < allItems.length; ++i) {
var elem = allItems[i];
var text = elem.findElement(by.css('.li-title').getText()); // does this even work?? dunno
if (text == "Specs")
specsDashboardElement = elem;
}
expect(specsDashboardElement.isDisplayed()).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)
});
我已按照这些说明操作,但这是我在node.js调试器控制台上看到的输出:
D:\ src\apps\j1-test.module> protractor debug conf.js
<debugger侦听端口5858
连接... ok
中断C:\ Users\j\AppData\Roaming \npm \node_modules\protractor\lib\cli.js:7
5*命令行选项中的值会覆盖配置中的值.
6*/
7'使用严格';
8
9 //这里需要咖啡来启用以咖啡脚本编写的配置文件.
debug> cont
<------------------------------------ …
我在我的实时应用程序中遇到了死锁错误,并将它们(使用sql server profiler的"死锁图")跟踪到after insert我的表上定义的触发器.
基本上情况是这样的 - 我想跟踪插入到某些表中的记录,按时间范围分组.(即在12:00-12:10之间,插入了7条记录Users).
我实现它的方法是after insert在这些表上创建触发器,因此当插入记录时,我将更新统计表中的相应记录.(见下文).
正如我所说,这似乎造成了僵局.发生的事情(我认为,我还没有找到确定的方法)是每个事务可以在提交之前在几个表中插入/更新几个记录.
因此事务1出现,更新统计表中的某个记录(从而锁定它),然后继续更新表B中的记录.
同时,事务2将记录插入表B(从而锁定它),并尝试更新统计信息表中的记录 - 导致死锁.
(这当然是可能发生的事情的简化版本.实际上我还不是100%肯定).
现在我最初的想法是看看是否可以在提交后执行触发器,以便事务不再持有任何锁.
但是,据我所知,没有这样的选择.
另一个解决方案是完全消除触发器,并使用某种批处理作业.
关于首选解决方案的任何其他想法/想法都会受欢迎.
触发代码:
SELECT @TimeIn = I.TimeIn,
@TimeOut = I.[TimeOut],
FROM Inserted AS I
SET @NoOfPAX = 1
SET @Day = DATEADD(dd,0,DATEDIFF(dd,0,@TimeOut))
SET @HourOfTheDay = DATEPART (HOUR, @TimeOut)
SET @MinuteOfTheHour = DATEPART (MINUTE, @TimeOut)
SELECT @HourlyStatsExists = COUNT(*)
FROM dbo.DataWarehouse_HourlyStats
WHERE [Day] = @Day
AND HourOfTheDay = @HourOfTheDay
AND MinuteOfTheHour = @MinuteOfTheHour
IF …Run Code Online (Sandbox Code Playgroud) unit-testing ×2
angularjs ×1
c# ×1
debugging ×1
html ×1
html-parsing ×1
jquery ×1
moq ×1
node.js ×1
nunit ×1
parsing ×1
protractor ×1
regex ×1
sql-server ×1
tdd ×1
triggers ×1