小编SRI*_*RAN的帖子

比较 JUnit 中的两个对象列表

我正在为我的 java 项目编写 JUnit 测试用例,并使用 Coverage Tool 来检查代码行是否被覆盖。问题是:我有两个对象列表。我需要使用assertTrue 或任何其他可能的断言语句来比较对象的结果是否相等。我通过使用下面的断言语句收到类似断言错误的错误。有什么解决方案可以轻松比较两个列表吗?

//actual    
List<ProjectData> actuals = ProjectManagerDao.getProjects("x", "y", "z");
// expected
List<ProjectData> expecteds = new ArrayList<>();
ProjectData p1 = new ProjectData();
p1.setId("a");
p1.setName("b");
expecteds.add(p1);

assertTrue(JsonProvider.getGson().toJson(actuals).equalsIgnoreCase(JsonProvider.getGson().toJson(expecteds)));
//or
assertTrue(actuals.equalIgnoreCase(expeteds);//Not working for list of objects but working for comparing two strings
Run Code Online (Sandbox Code Playgroud)

这与Java 比较两个列表不同,因为我需要能够在 jUnit 中断言相等,而不仅仅是比较列表。

java junit

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

如何将SQL参数中的字符串数组传递给SQL中的IN子句

我正在以复杂的方式做的逻辑.

我只需要在存储过程中执行此查询:

select Sizes, SUM(Quantity)
from tbl_SizeBreakup
where (Brand=@brand)
  and (Combo in ('1','2')) ...
Run Code Online (Sandbox Code Playgroud)

组合我必须在C#中使用SQL参数传递

DataSet dt = new DataSet();
cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "sp_Accessories";
cmd.Connection = con;

cmd.Parameters.AddRange(
    new SqlParameter[] {
        new SqlParameter("@Mode",mode),
        new SqlParameter("@Combo",combo),
    }}
Run Code Online (Sandbox Code Playgroud)

所以,如果我传递1个参数,按预期工作.我应该传递的组合是一个string[](字符串数组).数组长度可以取决于用户在UI中选择的任何内容.

我的问题是,如何传递string[]new SqlParameter("@Combo",combo)

我的存储过程..

ALTER proc [dbo].[sp_Accessories]
(  
@Mode varchar(50)=null,
@id int=null,
@brand varchar(50)=null,
@department varchar(MAX)=null,
@season varchar(50)=null,
@groupname varchar(MAX)=null,
@styles varchar(50)=null,
@combo varchar(50)=null,
@combo_color nvarchar(max)=null,
)
as
if @Mode='getsizewise'
begin
select …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server

0
推荐指数
1
解决办法
8308
查看次数

如何使用List.GetRange()

int k=7;
int index1=5; 
Run Code Online (Sandbox Code Playgroud)

arrayNames 有11个值.

if (k - index1 > 1)
{
   arrayNames1 = arrayNames.GetRange(index1, k);
}
Run Code Online (Sandbox Code Playgroud)

但它会抛出一个错误,因为" 偏移和长度超出了数组的范围,或者计数大于从索引到源集合末尾的元素数量. "

c#

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

标签 统计

c# ×2

java ×1

junit ×1

sql ×1

sql-server ×1