我一直试图写这个循环,它只是变得越来越复杂.基本上我想采取一个给定的日期并循环每个月,直到我达到当月.因此,如果开始日期是11/1/2011,那么我想循环
11/2011,12/2011,1/2012,2/2012等
这是我开始的,但这不起作用.一旦我遇到新的一年,我需要内循环重新开始,而不是startdate.Month.一般来说,循环数月和数年有更好的方法吗?谢谢
for (var y = startdate.Year; y <= DateTime.Now.Year; y++)
{
for (var m = startdate.Month; m <= 12; m++)
{
//do something with m and y
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为Selenium编写自己的ExpectedConditions,但我不知道如何添加新的.有人有例子吗?我在网上找不到任何教程.
在我目前的情况下,我想等到元素存在,可见,启用并且没有attr"aria-disabled".我知道这段代码不起作用:
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(seconds));
return wait.Until<IWebElement>((d) =>
{
return ExpectedConditions.ElementExists(locator)
&& ExpectedConditions.ElementIsVisible
&& d.FindElement(locator).Enabled
&& !d.FindElement(locator).GetAttribute("aria-disabled")
}
Run Code Online (Sandbox Code Playgroud)
编辑:一些额外的信息:我遇到的问题是使用jQuery选项卡.我在禁用的选项卡上有一个表单,它将在选项卡变为活动状态之前开始填写该选项卡上的字段.
我试图在条形图上添加一条情节线,但它没有显示出来.我发现的所有绘图线的例子都与折线图有关但我在文档中没有看到任何说明情节线不适用于条形图.当我初始化图表并在事实之后添加它时,我尝试添加情节线,但两种方式都不起作用.
这是我正在测试的例子.
$(function () {
$('#container').highcharts({
chart: {
type: 'bar'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
legend: {
layout: 'vertical',
floating: true,
backgroundColor: '#FFFFFF',
align: 'right',
verticalAlign: 'top',
y: 60,
x: -60
},
plotLines: [{
color: '#FF0000',
width: 2,
value: 80,
zIndex: 5
}],
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y;
}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, …Run Code Online (Sandbox Code Playgroud) 我正在使用Selenium WebDriver运行测试,如果用户没有访问权限,则页面上不存在div.我正在尝试等待,以便如果显示该项目,则返回true,但如果它达到超时,则返回false.
public bool SummaryDisplayed()
{
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(5));
var myElement = wait.Until(x => x.FindElement(By.Id("summaryPage")));
return myElement.Displayed;
}
Run Code Online (Sandbox Code Playgroud)
我不想使用Thread.Sleep,因为如果2秒后元素存在,我希望它继续.但是如果5秒后元素不存在则返回false.我不希望它抛出异常,在某些测试用例中我预计它不存在.有没有办法可以抑制异常并在超时后返回false?谢谢
我创建了一个有趣的网站来学习CakePHP但由于某种原因我无法获得多选下拉框以显示我选择的项目.在这个例子中,1视频游戏可能有多个困难(简单,正常,困难).在我的游戏编辑页面上,我有一个多选框来挑选困难.它显示了所有三个困难,我可以选择它们并正确保存.但是,当我返回编辑页面时,我之前保存的项目不会突出显示为已选中.我已经验证记录在数据库中正确保存.
表:游戏困难困难_游戏
楷模:
class Game extends AppModel {
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Difficulty' =>
array(
'className' => 'Difficulty',
'joinTable' => 'difficulties_games',
'foreignKey' => 'game_id',
'associationForeignKey' => 'difficulty_id',
'unique' => 'true'
)
);
}
class Difficulty extends AppModel {
public $actsAs = array('Containable');
public $hasAndBelongsToMany = array(
'Game' =>
array(
'className' => 'Game',
'joinTable' => 'difficulties_games',
'foreignKey' => 'difficulty_id',
'associationForeignKey' => 'game_id',
'unique' => 'true'
)
);
}
Run Code Online (Sandbox Code Playgroud)
控制器:
$game = $this->Game->findById($id);
$this->set('difficulties', $this->Game->Difficulty->find('list'));
Run Code Online (Sandbox Code Playgroud)
查看(edit.ctp):
echo $this->Form->input('Difficulty'); …Run Code Online (Sandbox Code Playgroud) 我试图以这样一种方式来构造我的单元测试:如果我更改了要测试的对象的构造函数,则不必更改很多测试。这是我现在设置的简化示例:
[TestMethod]
public void Test1()
{
_mockedObject1.Setup(etc);
_mockedObject2.Setup(etc);
var service = new TestedService(_mockedObject1.Object, _mockedObject2.Object, ...,
_mockedObject7.Object);
//Act and Assert
}
Run Code Online (Sandbox Code Playgroud)
现在,我有20个单元测试以相同的方式安排。如果必须更改TestedService的构造函数,则必须进入所有20个测试并更改创建服务的行。我可以将这行代码放入TestInitialize或其他内容中,这样我只需要更改一次即可?我首先想到的是,我不能这样做,因为这样一来,服务将在.Setups之前创建。还有另一种方法可以解决这个问题吗?
c# ×4
selenium ×2
cakephp ×1
date ×1
highcharts ×1
javascript ×1
moq ×1
mstest ×1
unit-testing ×1