diff --git a/RedisStudyTest/RedisSetStudyTest.cs b/RedisStudyTest/RedisSetStudyTest.cs
new file mode 100644
index 0000000..34fce55
--- /dev/null
+++ b/RedisStudyTest/RedisSetStudyTest.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using StackExchange.Redis;
+
+using Xunit;
+using Xunit.Extensions;
+using Xunit.Serialization;
+using Xunit.Abstractions;
+using Xunit.Sdk;
+
+using RedisStuy;
+
+namespace RedisStudyTest
+{
+ ///
+ /// Redis 集合学习 测试
+ ///
+ [Trait("RedisSet", "All")]
+ public class RedisSetStudyTest:IDisposable
+ {
+ #region 初始化
+ private readonly ITestOutputHelper testOutput;
+ private IDatabase redisDatabase = null;
+ private RedisSetStudy redisSetStudy = null;
+ private TimeSpan defaultExpiry = TimeSpan.FromSeconds(20);
+ private string defaultRedisKey = "RedisStudy:Set:xUnitTest";
+
+ ///
+ /// 构造
+ ///
+ public RedisSetStudyTest(ITestOutputHelper output)
+ {
+ this.testOutput = output;
+ redisDatabase = RedisHelper.GetRedisDatabase();
+ redisSetStudy = new RedisSetStudy();
+ }
+ #endregion
+
+ #region SetAdd
+
+ [Fact]
+ public void SetAddOneTest()
+ {
+ var addResult = redisSetStudy.SetAdd(defaultRedisKey, "first");
+ Assert.True(addResult);
+
+ addResult = redisSetStudy.SetAdd(defaultRedisKey, "second");
+ Assert.True(addResult);
+
+ var setMembers = redisSetStudy.SetMembers(defaultRedisKey);
+
+ Assert.NotEmpty(setMembers);
+ Assert.Equal(2, setMembers.Length);
+ Assert.Contains("first", setMembers);
+ Assert.Contains("second", setMembers);
+ }
+
+ [Fact]
+ public void SetAddGroupTest()
+ {
+ RedisValue[] values = new RedisValue[]
+ {
+ "first",
+ "second",
+ "third",
+ "four",
+ };
+
+ var setAddNumber = redisSetStudy.SetAdd(defaultRedisKey, values);
+ Assert.Equal(4, setAddNumber);
+
+ //忽略已存在的项
+ setAddNumber = redisSetStudy.SetAdd(defaultRedisKey, values);
+ Assert.Equal(0, setAddNumber);
+
+ var setMember = redisSetStudy.SetMembers(defaultRedisKey);
+ Assert.Equal(4, setMember.Length);
+
+ Assert.Contains(values[0], setMember);
+ Assert.Contains(values[1], setMember);
+ Assert.Contains(values[2], setMember);
+ Assert.Contains(values[3], setMember);
+ }
+ #endregion
+
+ #region 清理
+ public void Dispose()
+ {
+ redisDatabase.KeyDelete(defaultRedisKey);
+ }
+ #endregion
+ }
+}
diff --git a/RedisStudyTest/RedisStudyTest.csproj b/RedisStudyTest/RedisStudyTest.csproj
index 0dc1c4e..a201176 100644
--- a/RedisStudyTest/RedisStudyTest.csproj
+++ b/RedisStudyTest/RedisStudyTest.csproj
@@ -80,6 +80,7 @@
+
diff --git a/RedisStuy/RedisSetStudy.cs b/RedisStuy/RedisSetStudy.cs
index 4e9bb6e..8cd9542 100644
--- a/RedisStuy/RedisSetStudy.cs
+++ b/RedisStuy/RedisSetStudy.cs
@@ -32,6 +32,7 @@ namespace RedisStuy
///
/// 添加一组值到集合中
///
+ /// 添加到集合中的元素的数量,不包括已经存在于集合中的所有元素。
public long SetAdd(RedisKey key, RedisValue[] values, CommandFlags flags = CommandFlags.None)
{
return redisDatabase.SetAdd(key, values, flags);