在使用越来越多的JavaScript代码处理更大的Web应用程序时,我们就如何提高代码质量进行了头脑风暴会议.
最初的想法之一是引入单元测试.这将是一个长期目标; 但是,这不会解决最常见的回归原因:更改DOM和浏览器特定问题.
单元测试在模拟的无DOM环境中运行,不在页面上.
我正在寻找的是一个断言框架,可以插入代码中,如下所示:
var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
Run Code Online (Sandbox Code Playgroud)
我发现断言框架可以做到这一点,但它们都可以登录控制台或进入DOM或打开一个愚蠢的弹出窗口.这些都不与(数千个)自动化测试一起工作. 我正在寻找的是一个运行时断言框架,它通过AJAX记录失败的断言!理想情况下,它应该是:
我正在尝试在ac#mvc web项目中创建一个wcf服务.我添加了一个"WCF服务"类型的新项目,并在提供的接口中添加了一个测试方法:
[ServiceContract]
public interface ITest
{
[OperationContract]
void DoWork();
bool testWorking();
}
Run Code Online (Sandbox Code Playgroud)
并提供的服务:
public class Test : ITest
{
public void DoWork()
{
}
public bool testWorking()
{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我转到web.config文件并将以下内容添加到system.ServiceModel标记:
<services>
<service name="Test" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint address="" binding="wsHttpBinding" contract="ITest">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)
在这一点上,据我所知,我应该能够在浏览器中查看这个并获得测试消息告诉我,这是我实现客户端使用此服务的时间.然而,实际发生的是我的浏览器下载.svc文件!
两个问题:
1)我到底做错了什么?为什么我没有看到预期的消息?
2)有什么办法可以自动启动WCF测试工具来运行这项服务吗?我能找到的唯一指导方针是从WCF项目开始.
更新:( svc文件的内容 - 从评论中抓取)
<%@ ServiceHost Language="C#" Debug="true"
Service="myemployersaddress.com.Test" CodeBehind="Test.svc.cs" %>
Run Code Online (Sandbox Code Playgroud) 考虑到我加入的团队是如何使用SVN的,这是一个奇怪的问题.基本上,svn存储库遵循标准布局,但是干线确实在1.5年左右没有被触及,并且工作往往仅在分支的分支和分支中发生.因此,我使用git-svn从代表我们下一个版本的活动分支的分支进行克隆,这就是我本地git存储库中的主跟踪.让我们从这里开始在svn'release'中调用这个分支.为此目的使用git-svn只是笨拙的dory.
现在,有人已经创建了一个"发布"功能分支,我将称之为"功能",我想要下载到我的本地分支,并承诺.当然,我可以在本地克隆该分支到另一个目录/ git存储库,但我真正想做的是在我的本地git存储库中的本地分支中镜像"feature"以便在这两个人尽可能地直截了当.我已经看到其他stackoverflow.com帖子显示这是如何工作的假设你已经使用git svn init过--stdlayout,但由于上述原因我没有这样做.
这是我的.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://our.svn.server/svn/root/branches/release
fetch = :refs/remotes/git-svn
Run Code Online (Sandbox Code Playgroud)
我假设在我的[svn-remote]部分中我需要的是一个branches = $something但是我不知道在这种情况下是什么东西是什么,也不知道在我对.git/config进行更改后我需要git checkout和其他命令的咒语.
有什么建议?
编辑 - 以下工作:
所以我从头开始并执行以下克隆命令:
git svn clone https://my.svn.server/svn/root -T branches/branch_I_want_as_master -b branches
大约16个小时之后,最终将所有东西都拉下来了.结果.git/config看起来像这样:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://my.svn.server/svn/root
fetch = branches/branch_I_want_as_master:refs/remotes/trunk
branches = branches/*:refs/remotes/*
Run Code Online (Sandbox Code Playgroud)
所以我知道这有效 - 我可以 …
为什么我在此函数中的i ++上收到死代码警告?
InputFilter hexInputFilter()
{
return new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend)
{
for (int i = start; i < end; i++)
{
if ((source.charAt(i) >= '0')
&& (source.charAt(i) <= '9'))
{
return null;
}
if ((Character.toUpperCase(source.charAt(i)) >= 'A')
&& (Character.toUpperCase(source.charAt(i)) <= 'F'))
{
return null;
}
return "";
}
return null;
}
};
}
Run Code Online (Sandbox Code Playgroud) 我正在为此而摧毁自己.不是必须经历的ind js.但这应该是简单的吗?
我想在我的'arr'数组中包装每个元素并将其附加到div#testBox.我使用jQuery.each这样做,但我什么也没得到:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type='text/javascript'>
var arr = ["one", "two", "three", "four", "five"]
jQuery.each(arr, function() {
$(this).append("#testBox").wrap("<div class='mongol'></div>");
});
</script>Run Code Online (Sandbox Code Playgroud)
如果我在我的jQuery.each函数中警告(this),那么我会提醒每个元素.我不明白.
我想要实现的目标:
<div id="testBox>
<div class=" mongol ">one</div>
<div class="mongol ">two</div>
<div class="mongol ">three</div>
<div class="mongol ">four</div>
<div class="mongol ">five</div>
</div>Run Code Online (Sandbox Code Playgroud)
谢谢你帮助乔纳斯
我正在尝试提取我的URL的参数,就像这样.
/行政/客户/编辑/ 1
/管理/产品/编辑/ 18?允许=真
/管理/产品/创建?允许=真
有人可以帮忙吗?谢谢!
在我的RCP应用程序中,TreeViewer左侧有一个带有导航的视图,右侧有一个用于我的视图的文件夹.透视图如下所示:
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
layout.setFixed(false);
layout.addStandaloneView(NavigationView.ID, false, IPageLayout.LEFT, 0.7f, layout.getEditorArea());
right = layout.createFolder("right", IPageLayout.RIGHT, 0.3f, "com.my.app.views.browser.navigation");
layout.getViewLayout(WallpaperView.Id).setCloseable(false);//dummy view to keep the folder from closing
layout.getViewLayout(WallpaperView.Id).setMoveable(false);
right.addView(WallpaperView.Id);
//add some placeholders for the potential views
right.addPlaceholder(DefaultAdminView.ID+":*");
}
Run Code Online (Sandbox Code Playgroud)
我想根据用户在导航树中选择的内容打开不同的视图.认为这不会很难.我的导航树视图:
tree = new TreeViewer(composite);
tree.setContentProvider(new BrowserNavigationTreeContentProvider());
tree.setLabelProvider(new BrowserNavigationTreeLabelProvider());
tree.setInput(UserProfileAdvisor.getProject());
//register Mouselistener for doubleclick events
tree.addDoubleClickListener(new IDoubleClickListener(){
@Override
public void doubleClick(DoubleClickEvent event) {
TreeSelection ts = (TreeSelection) event.getSelection();
Object selectedItem = ts.getFirstElement();
String viewId = DefaultAdminView.ID;
//set viewId depending on …Run Code Online (Sandbox Code Playgroud) 假设我有一个Ecosystem用我的symfony自动生成的模型schema.yml.在代码中的某个时刻,我想从表中检索记录.
我知道有一些方法可以用Doctrine/Propel类来做到这一点,但是,有没有办法直接用模型做到这一点?我一直在考虑这样的事情:
$ecosystem = new Ecosystem();
$records = $ecosystem->find(...);
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这是做这种事情的首选方法吗?
我一直在使用CakePHP进行开发,直接使用Doctrine进行查询对我来说并不自然.如果我明天决定改为Propel怎么办?
谢谢!
我一直在尝试将Spring(3.0.4和3.0.5)MVC与Apache Tiles(2.1.2,2.1.4和2.2.2)集成,但无济于事.在每种情况下,我都会收到以下错误:
java.lang.NoClassDefFoundError:org/apache/tiles/startup/BasicTilesInitializer
根据Tiles文档,BasicTilesInitializer已被弃用.我认为Spring的TilesConfigurer的最新版本将引用正确的类,但它没有,我仍然得到相同的错误.
我正在使用以下配置在我的spring mvc app中设置Tiles:
<beans:bean
id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
</beans:list>
</beans:property>
</beans:bean>
<beans:bean
class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
<beans:property
name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望Spring 3.0.5能够使用Tiles 2.2.2.它们是本文的最新版本.
请考虑以下代码段.
{
....
FILE *fptr = fopen("file_that_does_not_exist","r");
...
}
Run Code Online (Sandbox Code Playgroud)
在这里,如果fopen失败,我们还需要调用fclose()进行一些清理吗?
eclipse ×2
java ×2
javascript ×2
.net ×1
android ×1
append ×1
asp.net-mvc ×1
assertions ×1
branch ×1
c ×1
c# ×1
c++ ×1
doctrine ×1
each ×1
eclipse-rcp ×1
git ×1
git-branch ×1
git-svn ×1
jquery ×1
model ×1
php ×1
spring ×1
spring-mvc ×1
swt ×1
symfony1 ×1
testing ×1
tiles ×1
unit-testing ×1
wcf ×1