问题列表 - 第9263页

测试grails taglib

Grails 1.1.我的自定义标签:

class MyTagLib {
  static namespace 'ct'
  def textField = {attrs ->
    def bean = attrs.remove('bean')
    def field = attrs.remove('field')
    attrs.name = field
    out << render(template:"/templates/textField", model:[
        required: !bean.constraints[field].nullable,
        display : bean["${bean.trainingExperience.type}"][field],
        theTag : g.textField(name : field, value : bean[field]),
        value : bean[field]
    ])
}
Run Code Online (Sandbox Code Playgroud)

几乎所有我看到的taglib单元测试

AssertEquals "Some String", taglib.out.toString()
Run Code Online (Sandbox Code Playgroud)

是否可以测试正确的模板是否使用模型中的正确值进行渲染?

MyTagLibTests

public class CareertracTagLibTests extends TagLibUnitTestCase{
  protected void setUp() {
    super.setUp()
    mockTagLib(FormTagLib)
    mockTagLib(RenderTagLib) 
    def g = new FormTagLib() // interpret "g" namespace as instances of FormTagLib
    tagLib.metaClass.g = …
Run Code Online (Sandbox Code Playgroud)

testing grails taglib

7
推荐指数
1
解决办法
4118
查看次数

在C#中应用DeMorgan定理在条件语句中手动优化布尔表达式是否有用(例如,如果条件)

回到我在C和C++中完成大部分工作的那一天,当然,我会手动应用deMorgan定理来优化任何非平凡的布尔表达式.

在C#中执行此操作是否有用,或者优化程序是否对此不必要?

c# compiler-construction optimization boolean-logic

10
推荐指数
4
解决办法
3799
查看次数

日期格式c#

我可以获取DateTime.Now格式化为

2010-03-01T00:00:00Z
Run Code Online (Sandbox Code Playgroud)

我用它来格式化日期部分

DateTime.Now.Subtract(new TimeSpan(3001, 0, 0, 0)).GetDateTimeFormats()[5]
Run Code Online (Sandbox Code Playgroud)

c# datetime string-formatting

3
推荐指数
2
解决办法
8531
查看次数

为什么'<'显示为&lt;

我正在输出一个像我这样的java类的字符串

String numQsAdded = "<div id='message1'>"+getQuestion()+"</div>";
Run Code Online (Sandbox Code Playgroud)

该字符串将作为XMLHttpRequest发送回客户端.所以,在我的jsp页面中,我有一个javascript警报方法,它打印出从服务器返回的字符串.它将'<' &lt;和'>'翻译为&gt;

我怎么能避免这个?

我试过将我的字符串更改为:

String numQsAdded = "&lt;div id='message1'&gt;"+getQuestion()+"&gt;/div&lt;";
Run Code Online (Sandbox Code Playgroud)

但这会产生更糟糕的影响.然后'&'被翻译为'amp'

java

4
推荐指数
2
解决办法
2万
查看次数

是否可以同时迭代两个IEnumerable对象?

如果我有一个List(Of x)和一个List(Of y),是否可以同时迭代这两个?

就像是

for each _x as X, _y as Y in List(of x), List(of y) 
    if _x.item = _y.item then
        'do something
    end if
next
Run Code Online (Sandbox Code Playgroud)

这些列表可能具有不同的大小.

我正在使用.Net2.0,我怀疑这是我的垮台,因为我有一种感觉,LINQ可以通过加入常见id上的列表轻松解决问题.

vb.net visual-studio-2005 .net-2.0

4
推荐指数
2
解决办法
2921
查看次数

为什么不能从其他程序集继承测试方法

为什么不能从其他程序集继承测试来运行:

namespace TestProject.Base
{
    [TestClass]   
    public abstract class TestBaseClass
    {
        [TestMethod]
        public void BaseTest()
        {
            Assert.IsTrue(false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试跑步者

namespace TestProject.UnitTest
{   
    [TestClass]
    public class UnitTest : TestBaseClass
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

当类在SAME程序集WTF中时,只能运行测试!

是否可以使用NUnit进行上述测试继承并且可以运行?

unit-testing mstest

5
推荐指数
1
解决办法
752
查看次数

如何在EDT面前管理游戏状态?

我正在Java平台上开发一个实时策略游戏克隆,我有一些关于放置位置和如何管理游戏状态的概念性问题.游戏使用Swing/Java2D作为渲染.在当前的开发阶段,不存在模拟,也不存在AI,只有用户能够改变游戏的状态(例如,建造/拆除建筑物,添加 - 移除生产线,组装车队和设备).因此,可以在事件调度线程中执行游戏状态操作而无需任何渲染查找.游戏状态还用于向用户显示各种聚合信息.

但是,由于我需要引入模拟(例如,构建进度,人口变化,车队运动,制造过程等),在Timer和EDT中更改游戏状态肯定会降低渲染速度.

假设模拟/ AI操作每500毫秒执行一次,我使用SwingWorker计算长度约为250毫秒.如何确保模拟和可能的用户交互之间没有关于游戏状态读取的竞争条件?

我知道模拟的结果(少量数据)可以通过SwingUtilities.invokeLater()调用有效地移回EDT.

游戏状态模型似乎过于复杂,无法在任何地方使用不可变值类.

是否有相对正确的方法来消除这种阅读竞争条件?也许在每个计时器刻度上进行全部/部分游戏状态克隆或将游戏状态的生存空间从EDT改为其他线程?

更新:(根据我给出的评论)游戏使用13个AI控制的玩家,1个人类玩家,并拥有大约10000个游戏对象(行星,建筑物,设备,研究等).例如,游戏对象具有以下属性:

World (Planets, Players, Fleets, ...)
Planet (location, owner, population, type, 
    map, buildings, taxation, allocation, ...)
Building (location, enabled, energy, worker, health, ...)

在一个场景中,用户在这个星球上建造一座新建筑.这是在EDT中执行的,因为需要更改地图和建筑物集合.与此同时,每隔500毫秒进行一次模拟,以计算所有游戏行星上建筑物的能量分配,这需要遍历建筑物集合以进行统计收集.如果计算分配,则将其提交给EDT并且分配每个建筑物的能量场.

只有人类玩家互动具有此属性,因为AI计算的结果无论如何都应用于EDT中的结构.

通常,75%的对象属性是静态的,仅用于渲染.其余部分可通过用户交互或模拟/ AI决策进行更改.还确保,在前一个步骤写回所有更改之前,不会启动新的模拟/ AI步骤.

我的目标是:

  • 避免延迟用户交互,例如,用户将建筑物放置在行星上,并且仅在0.5秒后获得视觉反馈
  • 避免通过计算,锁定等待等来阻止EDT.
  • 避免集合遍历和修改,属性更改的并发问题

选项:

  • 精细对象锁定
  • 不可变的收藏品
  • 易变的领域
  • 部分快照

所有这些都具有模型和游戏的优点,缺点和原因.

更新2:我在谈论这个游戏.我的克隆就在这里.屏幕截图可能有助于想象渲染和数据模型交互.

更新3:

我将尝试给出一个小代码示例以澄清我的问题,因为它似乎从评论中被误解:

List<GameObject> largeListOfGameObjects = ...
List<Building> preFilteredListOfBuildings = ...
// In EDT
public void onAddBuildingClicked() {
    Building b = new Building(100 /* kW */);
    largeListOfGameObjects.add(b); …
Run Code Online (Sandbox Code Playgroud)

java swing event-dispatch-thread

8
推荐指数
1
解决办法
858
查看次数

GWT中的原生Javascript方法

我在我的一个GWT Java类中有一个本机Javascript方法,但是我无法从本机Javascript代码调用我的Java方法.我试图尽可能地密切关注一点,但我无法让它发挥作用.我编译并在Firefox中运行它,错误控制台说"错误:this.lc不是函数".我尝试将所有方法改为公开,但这似乎没有什么区别.我究竟做错了什么?

package com.proprintsgear.design_lab.client;
...
public class ValueBox extends HorizontalPanel {
...
private void fireChange() {
    ...
}

private void increaseValue() {
    ...
}

private native void addNativeMouseWheelListener(String id) /*-{
    function mouseOverHandler(e) {
        $wnd.addEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function mouseOutHandler(e) {
        $wnd.removeEventListener("DOMMouseScroll", scrollWheelMove, false);
    }

    function scrollWheelMove(e) {
        if ($wnd.event || $wnd.Event) {
            if (!e) e = $wnd.event;
            if (e.wheelDelta <= 0 || e.detail > 0 ) {
                $wnd.alert("DOWN");
            } else {
                this.@com.proprintsgear.design_lab.client.ValueBox::increaseValue()();
            }
            this.@com.proprintsgear.design_lab.client.ValueBox::fireChange()(); …
Run Code Online (Sandbox Code Playgroud)

javascript java gwt native

10
推荐指数
1
解决办法
3万
查看次数

如何使用PHP检查是否存在远程文件?

我能找到的最好的,if fclose fopen类型的东西,使页面加载非常缓慢.

基本上我要做的是以下内容:我有一个网站列表,我想在他们旁边显示他们的favicon.但是,如果一个站点没有,我想用另一个图像替换它而不是显示损坏的图像.

php testing networking file

83
推荐指数
10
解决办法
14万
查看次数

Eclipse PDT中的构建路径和包含路径之间有什么区别?

Eclipse PDT中的构建路径和包含路径之间有什么区别?

eclipse-pdt

9
推荐指数
2
解决办法
2680
查看次数