我只是从c# - > java移动.我需要使用junit编写一些测试.在我的测试中,我需要比较两个字符串,看看它们是否匹配.所以我们也有Assert.assertEquals,但这是区分大小写的.我怎样才能使它不区分大小写?我需要的是:
"blabla".equals("BlabLA")
Run Code Online (Sandbox Code Playgroud)
返回真实.
所以在C#中,我们曾经有:
public static void AreEqual (
string expected,
string actual,
bool ignoreCase,
string message
)
Run Code Online (Sandbox Code Playgroud)
我很快就通过Junit文档,但我似乎无法找到这样的东西.
只是想知道使用命令行验证已安装的任何grunt模块的当前安装版本的命令是什么.例如
grunt-compass -v
Run Code Online (Sandbox Code Playgroud)
要么
grunt-compass --version
Run Code Online (Sandbox Code Playgroud)
不工作.
我在Express 4.13 app中有两条路线:
router.get('/:id', function (req, res) {
});
router.get('/new', function(req,res){
});
Run Code Online (Sandbox Code Playgroud)
但是当我试图访问时/new- 我得到404,因为没有'新'对象.那么如何更改我可以访问/新路由的设置而不会与/:id路由混淆.
谢谢.
当连接到Django中的mysql数据库时,我收到错误.
我确定mysql服务器正在运行.
/var/run/mysqld/mysqld.sock不存在.
当我运行时$ find / -name *.sock -type s,我只获得/tmp/mysql.sock和其他一些不相关的输出.
我添加socket = /tmp/mysql.sock到/etc/my.cnf.然后重新启动mysql,退出django shell,并连接到mysql数据库.我仍然有同样的错误.
我搜索了很多,但我仍然不知道该怎么做.
任何帮助都很重要.提前致谢.
好吧,我只是尝试了一些方法.它有效.我做了如下.
socket = /tmp/mysql.sock.Restart mysql服务器.ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock我今天遇到了另一个问题.我无法登录到mysql.我是mysql的新手.所以我猜mysql服务器和客户端使用相同的套接字进行通信.我添加socket = /var/mysqld/mysqld.sock到my.cnf中的[mysqld] [client]块并且它是wokrs.
Selenium isDisplayed()和isVisible()方法有什么区别?两者都用于标识Web元素是否隐藏在Web页面中.
元素isElementPresent和isVisibleSelenium RC 之间有什么区别.我明白了
selenium.isElementPresent() 和 selenium.isVisible()
如果我因为selenium.isElementPresent()我得到例外而变得虚假selenium.isVisible()
我需要按一天中的每一分钟对数据进行分组,并获得在该分钟内发生的事件的计数.我目前有:
items.GroupBy(x => new
{
x.date.Minute,
x.date.Hour
})
.Select(x => new TransferObject
{
Minute = x.Key.Minute,
Hour = x.Key.Hour,
Count = x.Count(),
Day = date
}).OrderBy(x => x.Hour).ThenBy(x => x.Minute).ToList();
Run Code Online (Sandbox Code Playgroud)
这就是我需要的,但问题是我可能没有每分钟的数据点,Count如果我没有那一分钟的数据,如何将0添加到字段?或者,我可以添加分钟号(0 ... 1440)并稍后添加缺失值.
解决方案当前仅按开始日期分组,但该对象实际上有一个字段end_date.所以基本上目前我已经完成了那一分钟开始的所有事件,但我需要得到那一分钟正在运行的事件的数量.
我的数据包含:
date end_date
2015-05-15 09:52:15.650 2015-05-15 09:55:38.097
2015-05-15 09:52:15.633 2015-05-15 09:52:16.097
2015-05-15 09:52:11.633 2015-05-15 09:52:13.047
2015-05-15 09:51:49.097 2015-05-15 09:55:17.687
2015-05-15 09:51:49.087 2015-05-15 09:56:17.510
Run Code Online (Sandbox Code Playgroud)
目前它不使用该end_date字段,因此输出为
{Count:2;Hour:9;Minute:51}
{Count:3;Hour:9;Minute:52}
Run Code Online (Sandbox Code Playgroud)
我需要有所有正在运行的事件,例如
{Count:2;Hour:9;Minute:51}
{Count:5;Hour:9;Minute:52}
{Count:3;Hour:9;Minute:53}
{Count:3;Hour:9;Minute:54}
{Count:3;Hour:9;Minute:55}
{Count:2;Hour:9;Minute:56}
Run Code Online (Sandbox Code Playgroud) 我试图理解单元测试中的模拟,并将单元测试过程集成到我的项目中.所以我一直走过几个教程并重构我的代码以支持模拟,无论如何,我无法通过测试,因为我试图测试的数据库方法是使用事务,但是在创建事务时,我得到了
底层提供程序在Open上失败.
没有交易,一切正常.
我目前的代码是:
[TestMethod]
public void Test1()
{
var mockSet = GetDbMock();
var mockContext = new Mock<DataContext>();
mockContext.Setup(m => m.Repository).Returns(mockSet.Object);
var service = new MyService(mockContext.Object);
service.SaveRepository(GetRepositoryData().First());
mockSet.Verify(m => m.Remove(It.IsAny<Repository>()), Times.Once());
mockSet.Verify(m => m.Add(It.IsAny<Repository>()), Times.Once());
mockContext.Verify(m => m.SaveChanges(), Times.Once());
}
// gets the DbSet mock with one existing item
private Mock<DbSet<Repository>> GetDbMock()
{
var data = GetRepositoryData();
var mockSet = new Mock<DbSet<Repository>>();
mockSet.As<IQueryable<Repository>>().Setup(m => m.Provider).Returns(data.Provider);
// skipped for brevity
return mockSet;
}
Run Code Online (Sandbox Code Playgroud)
被测代码:
private readonly DataContext _context;
public MyService(DataContext ctx) …Run Code Online (Sandbox Code Playgroud) 我正在运行构建系统.我们曾经使用CMS收集器,但是我们开始在非常长的完整GC循环中受苦,吞吐量(不做GC的时间)大约是90%.所以我现在决定切换到G1,假设即使我有更长的GC总时间,暂停也会更短,从而确保更高的可用性.因此,这个想法似乎比我所做的更好,我看到近3天没有完整的GC,吞吐量为97%,整体GC性能更好.(所有截图和数据均来自GCViewer)

直到现在(第6天).今天系统只是去了berzerk.使用的旧空间仅略低于100%.我看到Full GC几乎每2-3分钟就会触发一次:

旧空间利用:

堆大小为20G(总共128G Ram).我目前使用的标志是:
-XX:+UseG1GC
-XX:MaxPermSize=512m
-XX:MaxGCPauseMillis=800
-XX:GCPauseIntervalMillis=8000
-XX:NewRatio=4
-XX:PermSize=256m
-XX:InitiatingHeapOccupancyPercent=35
-XX:+ParallelRefProcEnabled
Run Code Online (Sandbox Code Playgroud)
加上日志标志.我似乎缺少的是-XX:+ParallelGCThreads=20(我有32个处理器),默认应该是8.我也从oracle中读到它会被建议-XX:+G1NewSizePercent=4为20G堆,默认应该是5.
我正在使用Oracle公司的Java HotSpot(TM)64位服务器VM 1.7.0_76
你会建议什么?我有明显的错误吗?有什么改变?我只给Java 20G贪婪吗?这里的假设是,给它太多的堆将意味着更长的GC,因为有更多的清理(农民逻辑).
PS:申请不是我的.对我来说它是一个盒子产品.
原始问题在这里
我正在读取UTF-8文件并解析该文件的内容.如果文件中有错误,则无法继续执行,应停止执行.IllegalArgumentException如果内容有问题,我建议抛弃,但API文档说:
抛出以指示方法已被传递非法或不适当的参数.
在我的代码中,参数将是我传递的文件(或实际上是路径),IllegalArgumentException在解析时出现问题是否正确?如果没有,我应该抛出什么类型的异常?
private char[][] readMazeFromFile(Path mazeFile) throws IOException {
if (!Files.isRegularFile(mazeFile) || !Files.isReadable(mazeFile)) {
throw new IllegalArgumentException("Cannot locate readable file " + mazeFile);
}
List<String> stringList = Files.readAllLines(mazeFile, StandardCharsets.UTF_8);
char[][] charMaze = new char[stringList.size()][];
for (int i = 0; i < stringList.size(); i++) {
String line = stringList.get(i);
if (line.length() != charMaze.length)
throw new IllegalArgumentException(String.format("Expect the maze to be square, but line %d is not %d characters long", line.length(), charMaze.length));
if (line.contains("B")) { …Run Code Online (Sandbox Code Playgroud) java ×5
c# ×2
selenium ×2
testing ×2
unit-testing ×2
command ×1
datetime ×1
django ×1
exception ×1
express ×1
g1gc ×1
group-by ×1
gruntjs ×1
junit ×1
junit4 ×1
jvm ×1
linq ×1
memory-leaks ×1
module ×1
moq ×1
mysql ×1
mysql.sock ×1
node.js ×1
python ×1
routing ×1
selenium-rc ×1
version ×1
webdriver ×1