Django(1.2 beta)将在每个运行的测试之间重置数据库,这意味着每个测试都在空DB上运行.但是,数据库不会刷新.刷新数据库的一个影响auto_increment是重置计数器.
考虑通过主键从数据库中提取数据的测试:
class ChangeLogTest(django.test.TestCase):
def test_one(self):
do_something_which_creates_two_log_entries()
log = LogEntry.objects.get(id=1)
assert_log_entry_correct(log)
log = LogEntry.objects.get(id=2)
assert_log_entry_correct(log)
Run Code Online (Sandbox Code Playgroud)
这将通过,因为只创建了两个日志条目.但是,如果添加了另一个测试ChangeLogTest并且它恰好在之前 运行test_one,则日志条目的主键不再是1和2,它们可能是2和3.现在test_one失败.
这实际上是一个两部分问题:
./manage.py test在每个测试用例之间刷新数据库?将数据嵌入html元素以供以后使用的最佳方法是什么?
举个例子,假设我们让jQuery从服务器返回一些JSON,我们想把这个数据作为段落转发给用户.但是,我们希望能够将元数据附加到这些元素,因此我们可以在以后为这些元素添加事件.
我倾向于处理这个问题的方式是使用一些丑陋的前缀
function handle_response(data) {
var html = '';
for (var i in data) {
html += '<p id="prefix_' + data[i].id + '">' + data[i].message + '</p>';
}
jQuery('#log').html(html).find('p').click(function(){
alert('The ID is: ' + $(this).attr('id').substr(7));
});
}
Run Code Online (Sandbox Code Playgroud)
或者,可以在段落中构建表单,并将元数据存储在那里.但是,这通常感觉有点矫枉过正.
以前曾以不同的方式询问过这个问题,但我觉得它没有得到很好的解答:
我需要在列表中生成一个带有Default值的选择菜单<options>.这就是我需要它的样子.
<select name="menu[parent_id]" id="menu_parent_id">
<option value="0">==None==</option>
<option value="34">TEST</option>
</select>
Run Code Online (Sandbox Code Playgroud)
目前我select在我的表单中使用这个帮助器
<%= f.select(:parent_id, @parent_menus.collect {|p| [ p.name, p.id ] }, {:include_blank => '==None=='})%>
Run Code Online (Sandbox Code Playgroud)
上面的代码产生了这个; (value="")
<select name="menu[parent_id]" id="menu_parent_id">
<option value="">==None==</option>
<option value="34">TEST</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这里有人能告诉我添加value="0"到选项列表的方法吗?
我有一个带有几个asp.net文本框控件的asp.net Web表单:
<asp:TextBox ID="txtTextBox" runat="server" /> .
Run Code Online (Sandbox Code Playgroud)
我有一个包含在页面中的javascript文件tools.js:
<script src="tools.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
如何从javascript访问txtTextBox中的值?
我试过用
document.getElementById('<%= txtTextBox.ClienID %>').value;
document.getElementById('<%= txtTextBox.UniqueID %>').value;
document.getElementById('<%= txtTextBox %>').value;
Run Code Online (Sandbox Code Playgroud)
但它们都不起作用.
有任何想法吗?
我很惊讶在Java源代码中看到System.arraycopy是一个本机方法.
当然原因是因为它更快.但是什么原生技巧是能够使用的代码使其更快?
为什么不循环遍历原始数组并将每个指针复制到新数组 - 当然这不是那么缓慢和麻烦?
这是一个问题.我不能使用每个C#-Code的字符串值设置BorderBrush(不在XAML中):
((Border)((Image)sender).Parent).BorderBrush = "#FFBCC7D8";
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?
在DOS批处理文件中,在IF语句中,是否可以使用AND或OR组合两个或多个条件?我无法找到任何相关文档
编辑 - help if并且MS文档没有说明在if中使用多个条件.
我想AND的解决方法就是做
if COND1 (
if COND2 (
cmd
)
)
Run Code Online (Sandbox Code Playgroud)
但这正是我想要避免的.
大家好,我在成员函数中有以下内容
int tt = 6;
vector<set<int>>& temp = m_egressCandidatesByDestAndOtMode[tt];
set<int>& egressCandidateStops = temp.at(dest);
Run Code Online (Sandbox Code Playgroud)
以及成员变量的以下声明
map<int, vector<set<int>>> m_egressCandidatesByDestAndOtMode;
Run Code Online (Sandbox Code Playgroud)
但编译时遇到错误(英特尔编译器11.0)
1>C:\projects\svn\bdk\Source\ZenithAssignment\src\Iteration\PtBranchAndBoundIterationOriginRunner.cpp(85): error: no operator "[]" matches these operands
1> operand types are: const std::map<int, std::vector<std::set<int, std::less<int>, std::allocator<int>>, std::allocator<std::set<int, std::less<int>, std::allocator<int>>>>, std::less<int>, std::allocator<std::pair<const int, std::vector<std::set<int, std::less<int>, std::allocator<int>>, std::allocator<std::set<int, std::less<int>, std::allocator<int>>>>>>> [ const int ]
1> vector<set<int>>& temp = m_egressCandidatesByDestAndOtMode[tt];
1> ^
Run Code Online (Sandbox Code Playgroud)
我知道它必须是愚蠢的,但我看不出我做错了什么.
UPDATE我从const成员函数调用它,这就是为什么成员变量的类型是const所以我认为类似下面的内容应该修复它:
int dest = 0, tt = 6;
const set<int>& egressCandidateStops = m_egressCandidatesByDestAndOtMode[tt].at(dest);
Run Code Online (Sandbox Code Playgroud)
但没有骰子......仍然是同样的错误.
我有一个Project模型,它接受Task的嵌套属性.
class Project < ActiveRecord::Base
has_many :tasks
accepts_nested_attributes_for :tasks, :allow_destroy => :true
end
class Task < ActiveRecord::Base
validates_uniqueness_of :name end
Run Code Online (Sandbox Code Playgroud)
任务模型中的唯一性验证在更新Project时会出现问题.
在编辑项目时,我删除任务T1,然后添加一个同名T1的新任务,唯一性验证限制了项目的保存.
params hash看起来像
task_attributes => { {"id" =>
"1","name" => "T1", "_destroy" =>
"1"},{"name" => "T1"}}
Run Code Online (Sandbox Code Playgroud)
在销毁旧任务之前完成对任务的验证.因此验证失败.任何想法如何验证,它不会考虑任务被销毁?
javascript ×2
arraycopy ×1
arrays ×1
asp.net ×1
batch-file ×1
brush ×1
c# ×1
c++ ×1
colors ×1
conditional ×1
cordova ×1
database ×1
django ×1
form-helpers ×1
html ×1
iphone ×1
java ×1
jquery ×1
map ×1
native ×1
nested-forms ×1
operands ×1
titanium ×1
unit-testing ×1
windows ×1
wpf ×1