我正在尝试对其他人编写的代码进行JUnit测试,但我无法弄清楚如何测试异常,因为异常似乎缺少类型.
public Pirate(String name, int initialGold) throws Exception {
if(initialGold < 0)
throw new Exception("Init Gold must be >= 0");
this.name = name;
this.numGold = initialGold;
this.health = Pirate.DEFAULT_HEALTH;
this.isCursed = false;
}
Run Code Online (Sandbox Code Playgroud)
我的JUnit代码片段:
@Test
public static void constructorTest() throws Exception{
rodgers = new Pirate("Dread Pirate Rodgers", 10000);
assertEquals("Dread Pirate Rodgers" , rodgers.getName());
assertEquals(10000, rodgers.getNumGold());
assertEquals(100, rodgers.getHealth());
assertEquals(false, rodgers.getIsCursed());
}
@Test()
public static void exceptionTest() throws Exception{
rodgers = new Pirate("Dread Pirate Rodgers" , -100);
}
Run Code Online (Sandbox Code Playgroud)
我知道我需要在测试的括号中放置expected =(某种类型的异常),但我对异常类型一无所知.
我正在重新设计网页的一部分,以便将来更容易更新.目前,它是一系列硬编码的表.要重新设计表格(例如,按照我想要的方式按字母顺序排列),需要手动交换html中的很多值.
这就是我想要做的:创建一个带有title和link变量的url_Link对象,分别保存显示名称和url.创建一个url_Link对象数组,并将其填充到页面的.asp文件的顶部.对这些阵列上的每个循环执行a以构建和填充表
这本身并不是那么糟糕,但我遇到了两个问题.首先,我不想定义数组大小,因为当对链接数进行更改时,这需要更改第二个位置.将存在一些逻辑来阻止显示某些url_Link对象(例如,某些用户无法访问某些页面,因此他们将看不到链接),这会在调整数组大小时引起问题.
我知道我可以制作一个大尺寸的数组,但这对我来说似乎很浪费(我不知道每个函数如何,也不希望出现一堆空行).
我该怎么做才能解决这些问题?我对vbscript知之甚少,而且我一直在使用的大部分代码都没有利用数组或对象.
更新:我尝试使用redim PRESERVE来修剪超大阵列的多余脂肪.问题是在某些情况下,由于if条件,我的数组中填充的对象数量少于其最大大小.当我使用for循环时,这会导致问题(尝试为每个循环工作并且目前没有发生).我在redim行上收到错误"此数组已固定或暂时锁定"
码:
dim systemSettingsArray(1)
arrayCounter = 0
if ADMIN = "Y" then
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Account Administration","Maintenance/Account_Admin.asp")
arrayCounter = arrayCounter + 1
end if
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Time Approval","Maintenance/system_Time_Approval.asp")
redim Preserve systemSettingsArray(arrayCounter)
Run Code Online (Sandbox Code Playgroud) 经过大量修改后,我终于为我的材质表有了一个不错的设置。它有分页,有排序,有我需要的所有东西。然而,它看起来不太对劲,因为我的几个列都是单位数字值,并且它们与我希望更大的列具有相同的宽度(例如过度包装的描述)。
由于对 scss (以及与此相关的 css )缺乏经验,我不知道如何解决这个问题。我尝试以几乎所有我能想到的方式修改 flex 属性,但它似乎没有改变任何事情。
这个问题更加复杂,因为我无法轻松地使用材料表的“hack”来根据列标识符生成类,因为列是动态生成的。我也可以传递宽度信息,但这似乎是一个无法维护的黑客行为。
有没有一种方法可以将样式应用于整个表格和标题,从而获得所需的外观?
我们已将服务从 .Net Core 2.1 更新到 3.1,在重新评估过渡期间中断或变慢的查询时,我们遇到了以下查询:
_context.InboundRecords.GroupBy(x => x.State.ToString()).ToDictionary(x => x.Key, x => x.Count())
Run Code Online (Sandbox Code Playgroud)
为了使这个“工作”与 3.1 重大更改一起,我们在 DBSet 和 Group By 之间添加一个 to list
_context.InboundRecords.ToList().GroupBy(x => x.State.ToString()).ToDictionary(x => x.Key, x => x.Count())
Run Code Online (Sandbox Code Playgroud)
这里的问题是,这会在进行分组之前将整个 InboundRecords 数据库集放入内存中。这与 2.1 的工作方式相同,但必须有更好的方法来做到这一点。我们可以调整这个查询以仅返回状态和该状态下的记录数吗?
我们一直遇到一个问题,随着时间的推移,随着代码库大小的增加,我们的构建过程会不时由于内存耗尽而失败。我们的短期解决方案只是向进程添加更多内存,但这在很多层面上感觉都是错误的。
我们已经删除了所有旧的和未使用的代码,并采取了我们可以采取的措施来减少重复代码,这确实有所帮助,但随着项目变得更大,我们将再次遇到这个问题。
我们的一个想法是模块化项目的各个部分(无论如何,这是我们想做的事情),但我们不确定这会改善内存使用。我们也不确定边界应该在哪里(但这可能涉及将我们的服务转移到共享模块)。
这些是好主意还是我们找错了对象?在 webpack 期间减少内存使用的最佳方法是什么?
我在获取本地存储变量以存储正确值时遇到了一些麻烦.它的主旨是我想显示局部变量的内容,然后如果用户点击,它会从.xml文件中提取数据,并将其保存到局部变量.
问题是,它没有正确保存到本地变量.我尝试了各种语法来使它工作,我没有想法.
它的测试站点位于http://web.engr.oregonstate.edu/~todtm/assignment2.html
脚本代码:
function startAjax()
{
$("#clickme").text("Calling server");
$.ajax(
{
url: "xmlpage.xml",
success: callbackFunction,
error: errorFunction
});
}
function callbackFunction(data, info)
{
var titles = $(data).find("title");
if (titles && titles.length)
{
$("#results").text("result:" + titles.text());
localStorage.setItem('titles', #results.text());
}
else
errorFunction(data, "No titles");
}
function errorFunction(data, info)
{
$("#clickme").text("error occurred:" + info);
}
$(document).ready(function ()
{
$("#results").text(localStorage.getItem('titles'));
});
Run Code Online (Sandbox Code Playgroud) 我是编程新手,所以如果对此有一个非常简单的答案,我深表歉意,但实际上我似乎找不到任何东西。我在猜数字游戏中使用扫描仪对象进行用户输入。扫描器是在我的 main 方法中声明的,并将在一个其他方法中使用(但该方法将在所有地方被调用)。
我试过将它声明为静态的,但是 eclipse 适合它并且不会运行。
public static void main(String[] args) {
int selection = 0;
Scanner dataIn = new Scanner(System.in);
Random generator = new Random();
boolean willContinue = true;
while (willContinue)
{
selection = GameList();
switch (selection){
case 1: willContinue = GuessNumber(); break;
case 2: willContinue = GuessYourNumber(); break;
case 3: willContinue = GuessCard(); break;
case 4: willContinue = false; break;
}
}
}
public static int DataTest(int selectionBound){
while (!dataIn.hasNextInt())
{
System.out.println("Please enter a valid value");
dataIn.nextLine();
} …Run Code Online (Sandbox Code Playgroud) 我有一个令人沮丧的问题,查询通常需要1.5-2分钟才能运行(由于缺乏修改此数据库的能力,我们无法比这次更多地改进它).尽管Command Timeout属性设置为0(这是C#代码),查询超时.
以下是执行查询的代码:
public DataTable GetData()
{
DataTable results = new DataTable();
try
{
using (var sqlConnection = new SqlConnection(ConfigurationManager.AppSettings["SqlConnectionString"].ToString()))
{
String command = _query;
sqlConnection.Open();
var sqlCommand = sqlConnection.CreateCommand();
sqlCommand.CommandText = command;
sqlCommand.CommandType = CommandType.Text;
sqlCommand.CommandTimeout = 0;
SqlDataAdapter daM = new SqlDataAdapter(sqlCommand.CommandText, sqlConnection);
daM.Fill(results);
sqlConnection.Close();
}
}
catch(Exception e)
{
Console.WriteLine("Error " + e.StackTrace);
}
Console.WriteLine("Retrieving results for query " + _query);
Console.WriteLine("Total Results: " + results.Rows.Count);
return results;
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里寻找罪魁祸首.设置更明确的超时没有任何作用,正如我所说,没有办法进一步改进我们能够找到的查询.连接字符串具有以下参数:
server =
集成安全性= SSPI
database =
连接超时= …
我正在使用 Angular 5 的材料组件,并且有一个表单控件,它是由服务调用提供支持的自动完成功能。不幸的是,在服务调用完成之前,自动完成不会显示,并且由于我们目前遇到的一些网络延迟问题,大多数用户在服务调用完成之前完成了输入。我想显示某种自动完成正在加载的视觉指示器,但无法弄清楚如何去做。
我们尝试的廉价解决方案是使用工作“加载”填充自动完成菜单,但这需要调整我们的过滤,以便在有人开始输入不以 l 开头的值时它不会立即被压缩。
这是其中一个字段的 HTML 基础知识:
<mat-form-field [hideRequiredMarker]="true">
<input matInput [(ngModel)]="size" type="text"
placeholder="{{'OPTIONS.SIZE' | translate}}"
[matAutocomplete]="autoSize"
readonly="{{!model}}"
(keyup)="filterSizes()"
matTooltip="{{ 'OPTIONS.MODEL_REQUIRED' | translate }}"
[matTooltipDisabled]="model != ''" />
<mat-autocomplete #autoSize="matAutocomplete">
<mat-option *ngFor="let completeSize of filteredSizeNames" [value]="completeSize">
{{completeSize}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)
服务调用完成后会填充filteredSizeNames 变量。我浏览了材料组件页面,但运气不佳,找到了解决方案。
当我编译几个简短的C程序时,我遇到了一些错误,我很遗憾发生了什么:
第一个给出了这些错误:
Q3.c:在函数âsort中:
Q3.c:11:警告:隐式声明函数âq_sortâ
Q3.c:顶级:
Q3.c:14:警告:âq_sortâ的冲突类型
Q3.c:11:注意:之前的"q_sort"隐式声明就在这里
Q3.c:在函数中:
Q3.c:52:警告:隐式声明函数âmallocâ
Q3.c:52:警告:内置函数âmalloc的不兼容的隐式声明
Q3.c:56:警告:隐式声明函数“
相关部分代码:
void sort(int* number, int n){
/*Sort the given array number , of length n*/
q_sort(number, 0, (n - 1));
}
void q_sort(int* numbers, int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = numbers[left];
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= …Run Code Online (Sandbox Code Playgroud) 我正在尝试从Rabbitmq部署失败中清除一些剩余数据。因此,我有3个秘密从未被完全启动的兔子服务所使用。每当我尝试使用kubectl delete secret删除它们时,它们都会立即以相似的名称重新创建(即使使用--force时)。
我看不到任何使用这些机密的服务或Pod,因此不应存在任何持久性的原因。
我对如何对对象数组进行for-each循环感到困惑。当前,我的方法以两种方式之一使我出错。for循环执行或因为认为类变量未定义而遇到问题,或者遇到对象类型是非法赋值的问题。
这是我定义的类:
Class url_Link
Public title, link
Public Default Function Init(newTitle, newLink)
title = newTitle
link = newLink
Set Init = Me
End Function
End Class
Run Code Online (Sandbox Code Playgroud)
作为参考,我得到的错误是:
Microsoft VBScript运行时错误'800a01f5'
非法分配:“ url_Link”
行674
使用此代码段:
<% for each x in systemSettingsArray%>
<tr>
<td class='nograph'><A href='<%x.link%>'><%x.title%></a></td>
</tr>
<%next%>
Run Code Online (Sandbox Code Playgroud)
当我更改url_Link为时x,出现此错误:
无效的过程调用或参数“链接”
创建对象并填充数组的代码:
Dim systemSettingsArray(1)
Dim link
Dim arrayCounter
arrayCounter = 0
Set systemSettingsArray(arrayCounter) = (New url_Link)("Account Administration", "Maintenance/Account_Admin.asp")
arrayCounter = arrayCounter + 1
Set systemSettingsArray(arrayCounter) = (New url_Link)("Time Approval", "Maintenance/system_Time_Approval.asp")
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的获取,它从字面上抓取整个数据库集并通过线路返回它.有问题的集合目前约为28,000行.
在本地测试时,对数据库的调用在不到一秒的时间内完成,但是大摇大摆的调用大约需要一分钟.在我们的生产环境中,完成调用大约需要1-2分钟(我们没有准确的数据库调用的时间码,但我们在前端计时需要多长时间,而且它也是1-2分钟).
数据调用和它到达前端之间的某些东西需要很长时间,而且我不确定如何解决它.
代码字面意思是:
[HttpGet]
public IActionResult GetAllCustomers()
{
return Ok(_context.Customers);
}
Run Code Online (Sandbox Code Playgroud)
我还能做些什么来调试这个?
我们的工作解决方案将是显着限制数据集,而不是返回<1000条记录,但业务首选项是拥有所有内容并让前端表对其进行排序和过滤.
在云雀上,我从模型中删除了所有相关对象,并将其剥离到表格中的10个左右列,但仍然需要很长时间.
angular5 ×2
arrays ×2
c# ×2
java ×2
vbscript ×2
.net ×1
angular6 ×1
asp-classic ×1
asp.net-core ×1
c ×1
ef-core-2.1 ×1
ef-core-3.1 ×1
for-loop ×1
html ×1
input ×1
javascript ×1
jquery ×1
junit ×1
kubectl ×1
kubernetes ×1
linq ×1
methods ×1
object ×1
quicksort ×1
sass ×1
sql-server ×1
testing ×1
webpack ×1